@charset "UTF-8";
.container {
  width: calc(100% - 2 * var(--component-padding));
  margin-left: auto;
  margin-right: auto;
}

.grid, .flex,
[class^=flex\@], [class*=" flex@"],
[class^=inline-flex\@], [class*=" inline-flex@"] {
  --gap: 0px;
  --gap-x: var(--gap);
  --gap-y: var(--gap);
  gap: var(--gap-y) var(--gap-x);
}
.grid > *, .flex > *,
[class^=flex\@] > *, [class*=" flex@"] > *,
[class^=inline-flex\@] > *, [class*=" inline-flex@"] > * {
  --sub-gap: 0px;
  --sub-gap-x: var(--sub-gap);
  --sub-gap-y: var(--sub-gap);
}

.grid {
  --grid-columns: 12;
  display: flex;
  flex-wrap: wrap;
}
.grid > * {
  flex-basis: 100%;
  max-width: 100%;
  min-width: 0;
}

/* #region (Safari < 14.1 fallback) */
@media not all and (min-resolution: 0.001dpcm) {
  @supports not (translate: none) {
    .grid, .flex[class*=gap-] {
      gap: 0px;
      margin-bottom: calc(-1 * var(--gap-y));
      margin-left: calc(-1 * var(--gap-x));
    }
    .grid > *, .flex[class*=gap-] > * {
      margin-bottom: var(--sub-gap-y);
    }
    .grid {
      --offset: var(--gap-x);
      --gap-modifier: 0;
      --offset-modifier: 1;
    }
    .grid > * {
      margin-left: var(--offset);
    }
    .flex[class*=gap-] > * {
      margin-left: var(--sub-gap-x);
    }
  }
}
/* #endregion */

.gap-xs {
  --gap-x: var(--space-xs);
  --gap-y: var(--space-xs);
}
.gap-xs > * {
  --sub-gap-x: var(--space-xs);
  --sub-gap-y: var(--space-xs);
}

.gap-sm {
  --gap-x: var(--space-sm);
  --gap-y: var(--space-sm);
}
.gap-sm > * {
  --sub-gap-x: var(--space-sm);
  --sub-gap-y: var(--space-sm);
}

.gap-md {
  --gap-x: var(--space-md);
  --gap-y: var(--space-md);
}
.gap-md > * {
  --sub-gap-x: var(--space-md);
  --sub-gap-y: var(--space-md);
}

.gap-lg {
  --gap-x: var(--space-lg);
  --gap-y: var(--space-lg);
}
.gap-lg > * {
  --sub-gap-x: var(--space-lg);
  --sub-gap-y: var(--space-lg);
}

@media (min-width: 32rem) {
  @media not all and (min-resolution: 0.001dpcm) {
  }
}
@media (min-width: 48rem) {
  @media not all and (min-resolution: 0.001dpcm) {
  }
}
@media (min-width: 64rem) {
  .col-4\@md {
    --span: 4;
  }
  .col-6\@md {
    --span: 6;
  }
  .col-8\@md {
    --span: 8;
  }
   .col-4\@md, .col-6\@md, .col-8\@md {
    flex-basis: calc((100% - (var(--grid-columns) - var(--gap-modifier, 1)) * var(--sub-gap-x)) * var(--span) / var(--grid-columns) + (var(--span) - 1) * var(--sub-gap-x));
    max-width: calc((100% - (var(--grid-columns) - var(--gap-modifier, 1)) * var(--sub-gap-x)) * var(--span) / var(--grid-columns) + (var(--span) - 1) * var(--sub-gap-x));
  }
  @media not all and (min-resolution: 0.001dpcm) {
  }
}
@media (min-width: 80rem) {
  @media not all and (min-resolution: 0.001dpcm) {
  }
}
@media (min-width: 90rem) {
  @media not all and (min-resolution: 0.001dpcm) {
  }
}
*, *::after, *::before {
  box-sizing: inherit;
}

* {
  font: inherit;
}

html, body, div, span, object, iframe,
h1, p,
a, code, em, img, s,
small, var,
b, i, center,
dl, dt, dd, ul, li, form, label, tr, embed,
figure, footer, header,
menu, nav, section, summary, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
}

html {
  box-sizing: border-box;
}

body {
  background-color: var(--color-bg, white);
}

 figure,
footer, header, menu, nav, section {
  display: block;
}

 ul, menu {
  list-style: none;
}

button, input, select {
  margin: 0;
}

.btn, .link, .reset {
  background-color: transparent;
  padding: 0;
  border: 0;
  border-radius: 0;
  color: inherit;
  line-height: inherit;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}

input::-ms-clear {
  display: none;
}

img, video, svg {
  max-width: 100%;
}

[data-theme] {
  background-color: var(--color-bg, hsl(0, 0%, 100%));
  color: var(--color-contrast-high, hsl(210, 7%, 21%));
}

:root {
  --space-unit: 1rem;
}

:root, * {
  --space-xxxxs: calc(0.125 * var(--space-unit));
  --space-xxxs: calc(0.25 * var(--space-unit));
  --space-xxs: calc(0.375 * var(--space-unit));
  --space-xs: calc(0.5 * var(--space-unit));
  --space-sm: calc(0.75 * var(--space-unit));
  --space-md: calc(1.25 * var(--space-unit));
  --space-lg: calc(2 * var(--space-unit));
  --space-xl: calc(3.25 * var(--space-unit));
  --space-xxl: calc(5.25 * var(--space-unit));
  --space-xxxl: calc(8.5 * var(--space-unit));
  --space-xxxxl: calc(13.75 * var(--space-unit));
  --component-padding: var(--space-md);
}

:root {
  --radius-sm: calc(var(--radius, 0.375em)/2);
  --radius-md: var(--radius, 0.375em);
  --radius-lg: calc(var(--radius, 0.375em)*2);
  --shadow-ring: 0 0 0 1px hsla(0, 0%, 0%, 0.05);
  --shadow-xs: 0 0 0 1px hsla(0, 0%, 0%, 0.02),
                0 1px 3px -1px hsla(0, 0%, 0%, 0.2);
  --shadow-sm: 0 0.3px 0.4px hsla(0, 0%, 0%, 0.02),
                0 0.9px 1.5px hsla(0, 0%, 0%, 0.045),
                0 3.5px 6px hsla(0, 0%, 0%, 0.09);
  --shadow-md: 0 0.9px 1.25px hsla(0, 0%, 0%, 0.025),
                0 3px 5px hsla(0, 0%, 0%, 0.05),
                0 12px 20px hsla(0, 0%, 0%, 0.09);
  --shadow-lg: 0 1.2px 1.9px -1px hsla(0, 0%, 0%, 0.01),
                0 3px 5px -1px hsla(0, 0%, 0%, 0.015),
                0 8px 15px -1px hsla(0, 0%, 0%, 0.05),
                0 28px 40px -1px hsla(0, 0%, 0%, 0.1);
  --shadow-xl: 0 1.5px 2.1px -6px hsla(0, 0%, 0%, 0.009),
                0 3.6px 5.2px -6px hsla(0, 0%, 0%, 0.0115),
                0 7.3px 10.6px -6px hsla(0, 0%, 0%, 0.0125),
                0 16.2px 21.9px -6px hsla(0, 0%, 0%, 0.025),
                0 46px 60px -6px hsla(0, 0%, 0%, 0.15);
  --inner-glow: inset 0 0 0.5px 1px hsla(0, 0%, 100%, 0.075);
  --inner-glow-top: inset 0 1px 0.5px hsla(0, 0%, 100%, 0.075);
  --ease-in-out: cubic-bezier(0.645, 0.045, 0.355, 1);
  --ease-in: cubic-bezier(0.55, 0.055, 0.675, 0.19);
  --ease-out: cubic-bezier(0.215, 0.61, 0.355, 1);
  --ease-out-back: cubic-bezier(0.34, 1.56, 0.64, 1);
}

:root {
  --heading-line-height: 1.2;
  --body-line-height: 1.4;
}

body {
  font-size: var(--text-base-size, 1rem);
  font-family: var(--font-primary, sans-serif);
  color: var(--color-contrast-high, hsl(210, 7%, 21%));
  font-weight: var(--body-font-weight, normal);
}

h1 {
  color: var(--color-contrast-higher, hsl(204, 28%, 7%));
  line-height: var(--heading-line-height, 1.2);
  font-weight: var(--heading-font-weight, 700);
}

h1 {
  font-size: var(--text-xxl, 2rem);
}

small {
  font-size: var(--text-sm, 0.75rem);
}

a, .link {
  color: var(--color-primary, hsl(250, 84%, 54%));
  text-decoration: underline;
}

s {
  text-decoration: line-through;
}

.text-component h1 {
  line-height: calc(var(--heading-line-height) * var(--line-height-multiplier, 1));
  margin-bottom: calc(var(--space-unit) * 0.3125 * var(--text-space-y-multiplier, 1));
}
.text-component p, .text-component ul li {
  line-height: calc(var(--body-line-height) * var(--line-height-multiplier, 1));
}
.text-component ul, .text-component p {
  margin-bottom: calc(var(--space-unit) * 0.9375 * var(--text-space-y-multiplier, 1));
}
.text-component ul {
  list-style-position: inside;
}
.text-component ul ul {
  padding-left: 1em;
  margin-bottom: 0;
}
.text-component ul {
  list-style-type: disc;
}
.text-component img {
  display: block;
  margin: 0 auto;
}
.text-component em {
  font-style: italic;
}
.text-component > *:first-child {
  margin-top: 0;
}
.text-component > *:last-child {
  margin-bottom: 0;
}
:root {
  --icon-xxxs: 8px;
  --icon-xxs: 12px;
  --icon-xs: 16px;
  --icon-sm: 24px;
  --icon-md: 32px;
  --icon-lg: 48px;
  --icon-xl: 64px;
  --icon-xxl: 96px;
  --icon-xxxl: 128px;
}

.icon {
  --size: 1em;
  font-size: var(--size);
  height: 1em;
  width: 1em;
  display: inline-block;
  color: inherit;
  fill: currentColor;
  line-height: 1;
  flex-shrink: 0;
  max-width: initial;
}

@keyframes icon-spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
.icon use {
  color: inherit;
  fill: currentColor;
}

.btn {
  position: relative;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  white-space: nowrap;
  text-decoration: none;
  font-size: var(--btn-font-size, 1em);
  padding-top: var(--btn-padding-y, 0.5em);
  padding-bottom: var(--btn-padding-y, 0.5em);
  padding-left: var(--btn-padding-x, 0.75em);
  padding-right: var(--btn-padding-x, 0.75em);
  border-radius: var(--btn-radius, 0.25em);
}

:root {
  --z-index-header: 3;
  --z-index-popover: 5;
  --z-index-fixed-element: 10;
  --z-index-overlay: 15;
}

:root {
  --display: block;
}

.is-hidden {
  display: none !important;
}
.sr-only {
  position: absolute;
  clip: rect(1px, 1px, 1px, 1px);
  -webkit-clip-path: inset(50%);
          clip-path: inset(50%);
  width: 1px;
  height: 1px;
  overflow: hidden;
  padding: 0;
  border: 0;
  white-space: nowrap;
}

.flex {
  display: flex;
}

.flex-wrap {
  flex-wrap: wrap;
}

.flex-column {
  flex-direction: column;
}

.flex-row-reverse {
  flex-direction: row-reverse;
}

.items-center {
  align-items: center;
}

[class^=aspect-ratio], [class*=" aspect-ratio"] {
  --aspect-ratio: calc(16/9);
  position: relative;
  height: 0;
  padding-bottom: calc(100% / (var(--aspect-ratio)));
}
[class^=aspect-ratio] > *, [class*=" aspect-ratio"] > * {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
[class^=aspect-ratio] > *:not(iframe), [class*=" aspect-ratio"] > *:not(iframe) {
  -o-object-fit: cover;
     object-fit: cover;
}

.block {
  display: block;
}

.inline {
  display: inline;
}

.hide {
  display: none;
}

.margin-top-sm {
  margin-top: var(--space-sm);
}

.margin-bottom-xxs {
  margin-bottom: var(--space-xxs);
}

.margin-y-xxl {
  margin-top: var(--space-xxl);
  margin-bottom: var(--space-xxl);
}

.padding-md {
  padding: var(--space-md);
}

.padding-top-lg {
  padding-top: var(--space-lg);
}

.padding-y-md {
  padding-top: var(--space-md);
  padding-bottom: var(--space-md);
}

.padding-y-lg {
  padding-top: var(--space-lg);
  padding-bottom: var(--space-lg);
}

.padding-y-xl {
  padding-top: var(--space-xl);
  padding-bottom: var(--space-xl);
}

.text-sm {
  font-size: var(--text-sm, 0.75rem);
}

.text-xl {
  font-size: var(--text-xl, 1.75rem);
}

.text-capitalize {
  text-transform: capitalize;
}

.font-bold {
  font-weight: 700;
}

.line-height-md {
  --heading-line-height: 1.15;
  --body-line-height: 1.4;
}
.line-height-md:not(.text-component) {
  line-height: 1.4;
}

.line-height-lg {
  --heading-line-height: 1.22;
  --body-line-height: 1.58;
}
.line-height-lg:not(.text-component) {
  line-height: 1.58;
}

[class^=color-], [class*=" color-"] {
  --color-o: 1;
}

.color-contrast-low {
  color: hsla(var(--color-contrast-low-h), var(--color-contrast-low-s), var(--color-contrast-low-l), var(--color-o, 1));
}

.color-contrast-medium {
  color: hsla(var(--color-contrast-medium-h), var(--color-contrast-medium-s), var(--color-contrast-medium-l), var(--color-o, 1));
}

.color-white {
  color: hsla(var(--color-white-h), var(--color-white-s), var(--color-white-l), var(--color-o, 1));
}

[class^=color-gradient], [class*=" color-gradient"] {
  color: transparent !important;
  -webkit-background-clip: text;
          background-clip: text;
  opacity: var(--color-o, 1);
}

.width-100\% {
  width: 100%;
}

:root {
  --max-width-xxxxxs: 17.5rem;
  --max-width-xxxxs: 20rem;
  --max-width-xxxs: 26rem;
  --max-width-xxs: 32rem;
  --max-width-xs: 38rem;
  --max-width-sm: 48rem;
  --max-width-md: 64rem;
  --max-width-lg: 80rem;
  --max-width-xl: 90rem;
  --max-width-xxl: 100rem;
  --max-width-xxxl: 120rem;
  --max-width-xxxxl: 150rem;
}

[class^=max-width-adaptive], [class*=" max-width-adaptive"] {
  max-width: 32rem;
}

@media (min-width: 48rem) {
   .max-width-adaptive-lg {
    max-width: 48rem;
  }
}
@media (min-width: 64rem) {
   .max-width-adaptive-lg {
    max-width: 64rem;
  }
}
@media (min-width: 80rem) {
  .max-width-adaptive-lg {
    max-width: 80rem;
  }
}

.shadow-ring {
  box-shadow: var(--shadow-ring);
}

.shadow-xs {
  box-shadow: var(--shadow-xs);
}

.shadow-xs.shadow-ring {
  box-shadow: var(--shadow-xs), var(--shadow-ring);
}
:where(.inner-glow, .inner-glow-top)::after {
  content: "";
  position: absolute;
  z-index: 1;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border-radius: inherit;
  pointer-events: none;
}

.inner-glow::after {
  box-shadow: var(--inner-glow);
}

.position-relative {
  position: relative;
}

.z-index-1 {
  z-index: 1;
}

[class^=border-], [class*=" border-"] {
  --border-o: 1;
  --border-width: 1px;
  --border-style: solid;
}

.radius-sm {
  border-radius: var(--radius-sm);
}

.radius-lg {
  border-radius: var(--radius-lg);
}

.bg, [class^=bg-], [class*=" bg-"] {
  --bg-o: 1;
}

.bg {
  background-color: hsla(var(--color-bg-h), var(--color-bg-s), var(--color-bg-l), var(--bg-o));
}

.bg-accent-lighter {
  background-color: hsla(var(--color-accent-lighter-h), var(--color-accent-lighter-s), var(--color-accent-lighter-l), var(--bg-o, 1));
}

[class^=flip], [class*=" flip"],
[class^=-rotate], [class*=" -rotate"],
[class^=rotate], [class*=" rotate"],
[class^=-translate], [class*=" -translate"],
[class^=translate], [class*=" translate"],
[class^=-scale], [class*=" -scale"],
[class^=scale], [class*=" scale"],
[class^=-skew], [class*=" -skew"] [class^=skew],
[class*=" skew"] {
  --translate: 0;
  --rotate: 0;
  --skew: 0;
  --scale: 1;
  transform: translate3d(var(--translate-x, var(--translate)), var(--translate-y, var(--translate)), var(--translate-z, 0)) rotateX(var(--rotate-x, 0)) rotateY(var(--rotate-y, 0)) rotateZ(var(--rotate-z, var(--rotate))) skewX(var(--skew-x, var(--skew))) skewY(var(--skew-y, 0)) scaleX(var(--scale-x, var(--scale))) scaleY(var(--scale-y, var(--scale)));
}

.transition {
  transition-property: var(--transition-property, all);
  transition-duration: var(--transition-duration, 0.2s);
  transition-delay: var(--transition-delay, 0s);
}

.visible {
  visibility: visible;
}

@media (min-width: 32rem) {
  .flex-row\@xs {
    flex-direction: row;
  }
}
@media (min-width: 64rem) {
  .justify-end\@md {
    justify-content: flex-end;
  }
  .padding-lg\@md {
    padding: var(--space-lg);
  }
}
:root, [data-theme=default] {
  --color-primary-darker: hsl(249, 80%, 40%);
  --color-primary-darker-h: 249;
  --color-primary-darker-s: 80%;
  --color-primary-darker-l: 40%;
  --color-primary-dark: hsl(249, 80%, 46%);
  --color-primary-dark-h: 249;
  --color-primary-dark-s: 80%;
  --color-primary-dark-l: 46%;
  --color-primary: hsl(249, 80%, 52%);
  --color-primary-h: 249;
  --color-primary-s: 80%;
  --color-primary-l: 52%;
  --color-primary-light: hsl(249, 80%, 58%);
  --color-primary-light-h: 249;
  --color-primary-light-s: 80%;
  --color-primary-light-l: 58%;
  --color-primary-lighter: hsl(249, 80%, 64%);
  --color-primary-lighter-h: 249;
  --color-primary-lighter-s: 80%;
  --color-primary-lighter-l: 64%;
  --color-accent-darker: hsl(0, 0%, 0%);
  --color-accent-darker-h: 0;
  --color-accent-darker-s: 0%;
  --color-accent-darker-l: 0%;
  --color-accent-dark: hsl(0, 0%, 6%);
  --color-accent-dark-h: 0;
  --color-accent-dark-s: 0%;
  --color-accent-dark-l: 6%;
  --color-accent: hsl(0, 0%, 12%);
  --color-accent-h: 0;
  --color-accent-s: 0%;
  --color-accent-l: 12%;
  --color-accent-light: hsl(0, 0%, 18%);
  --color-accent-light-h: 0;
  --color-accent-light-s: 0%;
  --color-accent-light-l: 18%;
  --color-accent-lighter: hsl(0, 0%, 24%);
  --color-accent-lighter-h: 0;
  --color-accent-lighter-s: 0%;
  --color-accent-lighter-l: 24%;
  --color-black: hsl(230, 13%, 9%);
  --color-black-h: 230;
  --color-black-s: 13%;
  --color-black-l: 9%;
  --color-white: hsl(0, 0%, 100%);
  --color-white-h: 0;
  --color-white-s: 0%;
  --color-white-l: 100%;
  --color-warning-darker: hsl(29, 91%, 45%);
  --color-warning-darker-h: 29;
  --color-warning-darker-s: 91%;
  --color-warning-darker-l: 45%;
  --color-warning-dark: hsl(29, 91%, 51%);
  --color-warning-dark-h: 29;
  --color-warning-dark-s: 91%;
  --color-warning-dark-l: 51%;
  --color-warning: hsl(29, 91%, 57%);
  --color-warning-h: 29;
  --color-warning-s: 91%;
  --color-warning-l: 57%;
  --color-warning-light: hsl(29, 91%, 63%);
  --color-warning-light-h: 29;
  --color-warning-light-s: 91%;
  --color-warning-light-l: 63%;
  --color-warning-lighter: hsl(29, 91%, 69%);
  --color-warning-lighter-h: 29;
  --color-warning-lighter-s: 91%;
  --color-warning-lighter-l: 69%;
  --color-success-darker: hsl(133, 96%, 43%);
  --color-success-darker-h: 133;
  --color-success-darker-s: 96%;
  --color-success-darker-l: 43%;
  --color-success-dark: hsl(133, 96%, 49%);
  --color-success-dark-h: 133;
  --color-success-dark-s: 96%;
  --color-success-dark-l: 49%;
  --color-success: hsl(133, 96%, 55%);
  --color-success-h: 133;
  --color-success-s: 96%;
  --color-success-l: 55%;
  --color-success-light: hsl(133, 96%, 61%);
  --color-success-light-h: 133;
  --color-success-light-s: 96%;
  --color-success-light-l: 61%;
  --color-success-lighter: hsl(133, 96%, 67%);
  --color-success-lighter-h: 133;
  --color-success-lighter-s: 96%;
  --color-success-lighter-l: 67%;
  --color-error-darker: hsl(333, 77%, 37%);
  --color-error-darker-h: 333;
  --color-error-darker-s: 77%;
  --color-error-darker-l: 37%;
  --color-error-dark: hsl(333, 77%, 43%);
  --color-error-dark-h: 333;
  --color-error-dark-s: 77%;
  --color-error-dark-l: 43%;
  --color-error: hsl(333, 77%, 49%);
  --color-error-h: 333;
  --color-error-s: 77%;
  --color-error-l: 49%;
  --color-error-light: hsl(333, 77%, 55%);
  --color-error-light-h: 333;
  --color-error-light-s: 77%;
  --color-error-light-l: 55%;
  --color-error-lighter: hsl(333, 77%, 61%);
  --color-error-lighter-h: 333;
  --color-error-lighter-s: 77%;
  --color-error-lighter-l: 61%;
  --color-bg-darker: hsl(240, 4%, 90%);
  --color-bg-darker-h: 240;
  --color-bg-darker-s: 4%;
  --color-bg-darker-l: 90%;
  --color-bg-dark: hsl(240, 4%, 95%);
  --color-bg-dark-h: 240;
  --color-bg-dark-s: 4%;
  --color-bg-dark-l: 95%;
  --color-bg: hsl(0, 0%, 100%);
  --color-bg-h: 0;
  --color-bg-s: 0%;
  --color-bg-l: 100%;
  --color-bg-light: hsl(0, 0%, 100%);
  --color-bg-light-h: 0;
  --color-bg-light-s: 0%;
  --color-bg-light-l: 100%;
  --color-bg-lighter: hsl(0, 0%, 100%);
  --color-bg-lighter-h: 0;
  --color-bg-lighter-s: 0%;
  --color-bg-lighter-l: 100%;
  --color-contrast-lower: hsl(240, 4%, 85%);
  --color-contrast-lower-h: 240;
  --color-contrast-lower-s: 4%;
  --color-contrast-lower-l: 85%;
  --color-contrast-low: hsl(240, 4%, 65%);
  --color-contrast-low-h: 240;
  --color-contrast-low-s: 4%;
  --color-contrast-low-l: 65%;
  --color-contrast-medium: hsl(225, 4%, 47%);
  --color-contrast-medium-h: 225;
  --color-contrast-medium-s: 4%;
  --color-contrast-medium-l: 47%;
  --color-contrast-high: hsl(230, 7%, 23%);
  --color-contrast-high-h: 230;
  --color-contrast-high-s: 7%;
  --color-contrast-high-l: 23%;
  --color-contrast-higher: hsl(230, 13%, 9%);
  --color-contrast-higher-h: 230;
  --color-contrast-higher-s: 13%;
  --color-contrast-higher-l: 9%;
}

[data-theme=dark] {
  --color-primary-darker: hsl(250, 100%, 60%);
  --color-primary-darker-h: 250;
  --color-primary-darker-s: 100%;
  --color-primary-darker-l: 60%;
  --color-primary-dark: hsl(250, 100%, 64%);
  --color-primary-dark-h: 250;
  --color-primary-dark-s: 100%;
  --color-primary-dark-l: 64%;
  --color-primary: hsl(250, 100%, 69%);
  --color-primary-h: 250;
  --color-primary-s: 100%;
  --color-primary-l: 69%;
  --color-primary-light: hsl(250, 100%, 72%);
  --color-primary-light-h: 250;
  --color-primary-light-s: 100%;
  --color-primary-light-l: 72%;
  --color-primary-lighter: hsl(250, 100%, 76%);
  --color-primary-lighter-h: 250;
  --color-primary-lighter-s: 100%;
  --color-primary-lighter-l: 76%;
  --color-accent-darker: hsl(342, 92%, 41%);
  --color-accent-darker-h: 342;
  --color-accent-darker-s: 92%;
  --color-accent-darker-l: 41%;
  --color-accent-dark: hsl(342, 92%, 47%);
  --color-accent-dark-h: 342;
  --color-accent-dark-s: 92%;
  --color-accent-dark-l: 47%;
  --color-accent: hsl(342, 92%, 54%);
  --color-accent-h: 342;
  --color-accent-s: 92%;
  --color-accent-l: 54%;
  --color-accent-light: hsl(342, 92%, 60%);
  --color-accent-light-h: 342;
  --color-accent-light-s: 92%;
  --color-accent-light-l: 60%;
  --color-accent-lighter: hsl(342, 92%, 65%);
  --color-accent-lighter-h: 342;
  --color-accent-lighter-s: 92%;
  --color-accent-lighter-l: 65%;
  --color-black: hsl(230, 13%, 9%);
  --color-black-h: 230;
  --color-black-s: 13%;
  --color-black-l: 9%;
  --color-white: hsl(0, 0%, 100%);
  --color-white-h: 0;
  --color-white-s: 0%;
  --color-white-l: 100%;
  --color-warning-darker: hsl(35, 79%, 48%);
  --color-warning-darker-h: 35;
  --color-warning-darker-s: 79%;
  --color-warning-darker-l: 48%;
  --color-warning-dark: hsl(35, 79%, 56%);
  --color-warning-dark-h: 35;
  --color-warning-dark-s: 79%;
  --color-warning-dark-l: 56%;
  --color-warning: hsl(35, 79%, 66%);
  --color-warning-h: 35;
  --color-warning-s: 79%;
  --color-warning-l: 66%;
  --color-warning-light: hsl(35, 79%, 74%);
  --color-warning-light-h: 35;
  --color-warning-light-s: 79%;
  --color-warning-light-l: 74%;
  --color-warning-lighter: hsl(35, 79%, 82%);
  --color-warning-lighter-h: 35;
  --color-warning-lighter-s: 79%;
  --color-warning-lighter-l: 82%;
  --color-success-darker: hsl(170, 78%, 26%);
  --color-success-darker-h: 170;
  --color-success-darker-s: 78%;
  --color-success-darker-l: 26%;
  --color-success-dark: hsl(170, 78%, 31%);
  --color-success-dark-h: 170;
  --color-success-dark-s: 78%;
  --color-success-dark-l: 31%;
  --color-success: hsl(170, 78%, 36%);
  --color-success-h: 170;
  --color-success-s: 78%;
  --color-success-l: 36%;
  --color-success-light: hsl(170, 78%, 42%);
  --color-success-light-h: 170;
  --color-success-light-s: 78%;
  --color-success-light-l: 42%;
  --color-success-lighter: hsl(170, 78%, 47%);
  --color-success-lighter-h: 170;
  --color-success-lighter-s: 78%;
  --color-success-lighter-l: 47%;
  --color-error-darker: hsl(342, 92%, 41%);
  --color-error-darker-h: 342;
  --color-error-darker-s: 92%;
  --color-error-darker-l: 41%;
  --color-error-dark: hsl(342, 92%, 47%);
  --color-error-dark-h: 342;
  --color-error-dark-s: 92%;
  --color-error-dark-l: 47%;
  --color-error: hsl(342, 92%, 54%);
  --color-error-h: 342;
  --color-error-s: 92%;
  --color-error-l: 54%;
  --color-error-light: hsl(342, 92%, 60%);
  --color-error-light-h: 342;
  --color-error-light-s: 92%;
  --color-error-light-l: 60%;
  --color-error-lighter: hsl(342, 92%, 65%);
  --color-error-lighter-h: 342;
  --color-error-lighter-s: 92%;
  --color-error-lighter-l: 65%;
  --color-bg-darker: hsl(232, 7%, 8%);
  --color-bg-darker-h: 232;
  --color-bg-darker-s: 7%;
  --color-bg-darker-l: 8%;
  --color-bg-dark: hsl(233, 8%, 11%);
  --color-bg-dark-h: 233;
  --color-bg-dark-s: 8%;
  --color-bg-dark-l: 11%;
  --color-bg: hsl(232, 11%, 15%);
  --color-bg-h: 232;
  --color-bg-s: 11%;
  --color-bg-l: 15%;
  --color-bg-light: hsl(233, 8%, 19%);
  --color-bg-light-h: 233;
  --color-bg-light-s: 8%;
  --color-bg-light-l: 19%;
  --color-bg-lighter: hsl(232, 7%, 22%);
  --color-bg-lighter-h: 232;
  --color-bg-lighter-s: 7%;
  --color-bg-lighter-l: 22%;
  --color-contrast-lower: hsl(240, 6%, 26%);
  --color-contrast-lower-h: 240;
  --color-contrast-lower-s: 6%;
  --color-contrast-lower-l: 26%;
  --color-contrast-low: hsl(240, 3%, 41%);
  --color-contrast-low-h: 240;
  --color-contrast-low-s: 3%;
  --color-contrast-low-l: 41%;
  --color-contrast-medium: hsl(213, 3%, 57%);
  --color-contrast-medium-h: 213;
  --color-contrast-medium-s: 3%;
  --color-contrast-medium-l: 57%;
  --color-contrast-high: hsl(240, 5%, 82%);
  --color-contrast-high-h: 240;
  --color-contrast-high-s: 5%;
  --color-contrast-high-l: 82%;
  --color-contrast-higher: hsl(240, 100%, 99%);
  --color-contrast-higher-h: 240;
  --color-contrast-higher-s: 100%;
  --color-contrast-higher-l: 99%;
}

@media (min-width: 64rem) {
  :root, * {
    --space-xxxxs: calc(0.1875 * var(--space-unit));
    --space-xxxs: calc(0.375 * var(--space-unit));
    --space-xxs: calc(0.5625 * var(--space-unit));
    --space-xs: calc(0.75 * var(--space-unit));
    --space-sm: calc(1.125 * var(--space-unit));
    --space-md: calc(2 * var(--space-unit));
    --space-lg: calc(3.125 * var(--space-unit));
    --space-xl: calc(5.125 * var(--space-unit));
    --space-xxl: calc(8.25 * var(--space-unit));
    --space-xxxl: calc(13.25 * var(--space-unit));
    --space-xxxxl: calc(21.5 * var(--space-unit));
  }
}
:root {
  --radius: 0.375em;
}

:root {
  --font-primary: Montserrat;
  --font-secondary: Noto Serif;
  --text-base-size: 1rem;
  --text-scale-ratio: 1.2;
  --body-line-height: 1.4;
  --heading-line-height: 1.2;
  --font-primary-capital-letter: 1;
  --font-secondary-capital-letter: 1;
  --text-unit: var(--text-base-size);
}

:root, * {
  --text-xs: calc((var(--text-unit) / var(--text-scale-ratio)) / var(--text-scale-ratio));
  --text-sm: calc(var(--text-xs) * var(--text-scale-ratio));
  --text-md: calc(var(--text-sm) * var(--text-scale-ratio) * var(--text-scale-ratio));
  --text-lg: calc(var(--text-md) * var(--text-scale-ratio));
  --text-xl: calc(var(--text-lg) * var(--text-scale-ratio));
  --text-xxl: calc(var(--text-xl) * var(--text-scale-ratio));
  --text-xxxl: calc(var(--text-xxl) * var(--text-scale-ratio));
  --text-xxxxl: calc(var(--text-xxxl) * var(--text-scale-ratio));
}

@media (min-width: 64rem) {
  :root {
    --text-base-size: 1.125rem;
    --text-scale-ratio: 1.215;
  }
}
body {
  font-family: var(--font-primary);
  --body-font-weight: 400;
}

h1 {
  font-family: var(--font-secondary);
  --heading-font-weight: 700;
}

html {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.link {
  text-decoration: none;
  background-image: linear-gradient(to right, currentColor 50%, hsla(var(--color-contrast-higher-h), var(--color-contrast-higher-s), var(--color-contrast-higher-l), 0.15) 50%);
  background-size: 200% 1px;
  background-repeat: no-repeat;
  background-position: 100% 100%;
  transition: background-position 0.2s;
}
.link:hover {
  background-position: 0% 100%;
}

.text-component {
  --line-height-multiplier: 1;
  --text-space-y-multiplier: 1;
}
.text-component > * {
  --text-unit: 1em;
  --space-unit: 1em;
}

:root {
  --btn-font-size: 1em;
  --btn-padding-x: var(--space-sm);
  --btn-padding-y: var(--space-xxs);
  --btn-radius: var(--radius-md);
}

.btn {
  background: var(--color-bg-dark);
  color: var(--color-contrast-higher);
  cursor: pointer;
  text-decoration: none;
  line-height: 1.2;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  transition: all 0.2s ease;
  will-change: transform;
}
.btn:focus {
  box-shadow: 0px 0px 0px 2px var(--color-bg), 0px 0px 0px 4px hsla(var(--color-contrast-higher-h), var(--color-contrast-higher-s), var(--color-contrast-higher-l), 0.15);
  outline: none;
}
.btn:active {
  transform: translateY(2px);
}

.btn--primary {
  background: var(--color-primary);
  color: var(--color-white);
  box-shadow: inset 0px 1px 0px hsla(var(--color-white-h), var(--color-white-s), var(--color-white-l), 0.15), 0px 1px 3px hsla(var(--color-primary-darker-h), var(--color-primary-darker-s), var(--color-primary-darker-l), 0.25), 0px 2px 6px hsla(var(--color-primary-darker-h), var(--color-primary-darker-s), var(--color-primary-darker-l), 0.1), 0px 6px 10px -2px hsla(var(--color-primary-darker-h), var(--color-primary-darker-s), var(--color-primary-darker-l), 0.25);
}
.btn--primary:hover {
  background: var(--color-primary-light);
  box-shadow: inset 0px 1px 0px hsla(var(--color-white-h), var(--color-white-s), var(--color-white-l), 0.15), 0px 1px 2px hsla(var(--color-primary-darker-h), var(--color-primary-darker-s), var(--color-primary-darker-l), 0.25), 0px 1px 4px hsla(var(--color-primary-darker-h), var(--color-primary-darker-s), var(--color-primary-darker-l), 0.1), 0px 3px 6px -2px hsla(var(--color-primary-darker-h), var(--color-primary-darker-s), var(--color-primary-darker-l), 0.25);
}
.btn--primary:focus {
  box-shadow: inset 0px 1px 0px hsla(var(--color-white-h), var(--color-white-s), var(--color-white-l), 0.15), 0px 1px 2px hsla(var(--color-primary-darker-h), var(--color-primary-darker-s), var(--color-primary-darker-l), 0.25), 0px 1px 4px hsla(var(--color-primary-darker-h), var(--color-primary-darker-s), var(--color-primary-darker-l), 0.1), 0px 3px 6px -2px hsla(var(--color-primary-darker-h), var(--color-primary-darker-s), var(--color-primary-darker-l), 0.25), 0px 0px 0px 2px var(--color-bg), 0px 0px 0px 4px var(--color-primary);
}

.btn--subtle {
  background: var(--color-bg-lighter);
  color: var(--color-contrast-higher);
  box-shadow: inset 0px 1px 0px hsla(var(--color-white-h), var(--color-white-s), var(--color-white-l), 0.1), 0px 0px 0px 1px hsla(var(--color-black-h), var(--color-black-s), var(--color-black-l), 0.02), 0px 1px 3px -1px hsla(var(--color-black-h), var(--color-black-s), var(--color-black-l), 0.2), 0px 3px 6px hsla(var(--color-black-h), var(--color-black-s), var(--color-black-l), 0.12);
}
.btn--subtle:hover {
  background: var(--color-bg-light);
  box-shadow: inset 0px 1px 0px hsla(var(--color-white-h), var(--color-white-s), var(--color-white-l), 0.1), 0px 0px 0px 1px hsla(var(--color-black-h), var(--color-black-s), var(--color-black-l), 0.02), 0px 1px 2px hsla(var(--color-black-h), var(--color-black-s), var(--color-black-l), 0.12), 0px 1px 3px -1px hsla(var(--color-black-h), var(--color-black-s), var(--color-black-l), 0.2);
}
.btn--subtle:focus {
  box-shadow: inset 0px 1px 0px hsla(var(--color-white-h), var(--color-white-s), var(--color-white-l), 0.1), 0px 0px 0px 1px hsla(var(--color-black-h), var(--color-black-s), var(--color-black-l), 0.02), 0px 1px 3px -1px hsla(var(--color-black-h), var(--color-black-s), var(--color-black-l), 0.2), 0px 3px 6px hsla(var(--color-black-h), var(--color-black-s), var(--color-black-l), 0.12), 0px 0px 0px 2px var(--color-bg), 0px 0px 0px 4px var(--color-contrast-high);
}

 .btn[disabled] {
  opacity: 0.6;
  cursor: not-allowed;
}

:root {
  --form-control-font-size: 1em;
  --form-control-padding-x: var(--space-xs);
  --form-control-padding-y: var(--space-xxs);
  --form-control-radius: var(--radius-md);
}

.advist {
  height: auto;
  width: 300px;
}
@media not all and (min-width: 64rem) {
  .advist {
    width: 220px;
  }
}

.header {
  height: 150px;
}

.flex-row-reverse {
  flex-direction: row-reverse;
}
/* -------------------------------- 

File#: _1_3d-drawer
Title: 3D Drawer
Descr: A 3D panel used to display critical content
Usage: codyhouse.co/license

-------------------------------- */
.td-drawer {
  position: fixed;
  z-index: var(--z-index-overlay);
  top: 0;
  right: 0;
  height: 100%;
  width: 100%;
  background-color: hsla(var(--color-black-h), var(--color-black-s), var(--color-black-l), 0);
  transition: background-color 0.3s, visibility 0s 0.3s;
  visibility: hidden;
}
.td-drawer:focus {
  outline: none;
}

.td-drawer--is-visible {
  visibility: visible;
  background-color: hsla(var(--color-black-h), var(--color-black-s), var(--color-black-l), 0.9);
  transition: background-color 0.3s, visibility 0s;
}

.td-drawer__content {
  position: absolute;
  top: 0;
  right: 0;
  width: 90%;
  max-width: 720px;
  height: 100%;
  background-color: var(--color-bg);
  box-shadow: var(--shadow-lg);
  display: flex;
  flex-direction: column;
  transform: translateX(100%);
  transition: transform 0.3s var(--ease-out);
}
.td-drawer--left .td-drawer__content {
  right: auto;
  left: 0;
  transform: translateX(-100%);
}
.td-drawer--bottom .td-drawer__content {
  width: 100%;
  max-width: none;
  height: 70%;
  max-height: 720px;
  transform: translateY(100%);
  top: auto;
  bottom: 0;
}
.td-drawer--is-visible .td-drawer__content {
  transform: translateX(0);
}
.td-drawer--is-visible.td-drawer--bottom .td-drawer__content {
  transform: translateY(0);
}

.td-drawer__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-shrink: 0;
  background: var(--color-bg);
  border-bottom: 1px solid hsla(var(--color-contrast-higher-h), var(--color-contrast-higher-s), var(--color-contrast-higher-l), 0.1);
}

.td-drawer__close-btn {
  display: flex;
  width: 32px;
  height: 32px;
  flex-shrink: 0;
  border-radius: 50%;
  background-color: var(--color-bg-light);
  box-shadow: var(--inner-glow), var(--shadow-ring), var(--shadow-xs);
  transition: 0.2s;
}
.td-drawer__close-btn:hover {
  background-color: var(--color-bg-lighter);
  box-shadow: var(--inner-glow), var(--shadow-ring), var(--shadow-sm);
}
.td-drawer__close-btn .icon {
  --size: 16px;
  display: block;
  margin: auto;
  color: var(--color-contrast-higher);
}

.td-drawer__body {
  height: 100%;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
}

.td-drawer-main {
  background: var(--color-bg);
  box-shadow: var(--shadow-md);
  height: 100vh;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  will-change: transform;
  transition: transform 0.3s var(--ease-out);
}

.td-drawer-main--drawer-is-visible {
  transform: scale(0.9);
  overflow: hidden;
}

/* -------------------------------- 

File#: _1_anim-menu-btn
Title: Animated Menu Button
Descr: A menu button w/ a morphing icon
Usage: codyhouse.co/license

-------------------------------- */
:root {
  --anim-menu-btn-size: 48px;
  --anim-menu-btn-transition-duration: .2s;
  --anim-menu-btn-icon-size: 32px;
  --anim-menu-btn-icon-stroke: 2px;
}

.anim-menu-btn {
  display: flex;
  justify-content: center;
  align-items: center;
  width: var(--anim-menu-btn-size);
  height: var(--anim-menu-btn-size);
}

.anim-menu-btn__icon {
  position: relative;
  display: block;
  font-size: var(--anim-menu-btn-icon-size);
  width: 1em;
  height: var(--anim-menu-btn-icon-stroke);
  color: inherit;
  background-image: linear-gradient(currentColor, currentColor);
  background-repeat: no-repeat;
  transform: scale(1);
}
.anim-menu-btn__icon::before, .anim-menu-btn__icon::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  background-image: inherit;
  border-radius: inherit;
}

.anim-menu-btn__icon--close {
  background-size: 100% 100%;
  will-change: transform, background-size;
  transition-property: transform, background-size;
  transition-duration: var(--anim-menu-btn-transition-duration, 0.2s);
}
.anim-menu-btn:active .anim-menu-btn__icon--close {
  transform: scale(0.9);
}
.anim-menu-btn__icon--close::before, .anim-menu-btn__icon--close::after {
  will-change: inherit;
  transition: inherit;
}
.anim-menu-btn__icon--close::before {
  transform: translateY(-0.25em) rotate(0);
}
.anim-menu-btn__icon--close::after {
  transform: translateY(0.25em) rotate(0);
}

.anim-menu-btn--state-b .anim-menu-btn__icon--close {
  background-size: 0% 100%;
}
.anim-menu-btn--state-b .anim-menu-btn__icon--close::before {
  transform: translateY(0) rotate(45deg);
}
.anim-menu-btn--state-b .anim-menu-btn__icon--close::after {
  transform: translateY(0) rotate(-45deg);
}

.anim-menu-btn__icon--arrow-left,
.anim-menu-btn__icon--arrow-right,
.anim-menu-btn__icon--arrow-up,
.anim-menu-btn__icon--arrow-down {
  border-radius: 50em;
  will-change: transform;
  transition-property: transform;
  transition-duration: var(--anim-menu-btn-transition-duration, 0.2s);
}
.anim-menu-btn:active .anim-menu-btn__icon--arrow-left,
.anim-menu-btn:active .anim-menu-btn__icon--arrow-right,
.anim-menu-btn:active .anim-menu-btn__icon--arrow-up,
.anim-menu-btn:active .anim-menu-btn__icon--arrow-down {
  transform: scale(0.9);
}
.anim-menu-btn__icon--arrow-left::before, .anim-menu-btn__icon--arrow-left::after,
.anim-menu-btn__icon--arrow-right::before,
.anim-menu-btn__icon--arrow-right::after,
.anim-menu-btn__icon--arrow-up::before,
.anim-menu-btn__icon--arrow-up::after,
.anim-menu-btn__icon--arrow-down::before,
.anim-menu-btn__icon--arrow-down::after {
  transform-origin: calc(var(--anim-menu-btn-icon-stroke) / 2) 50%;
  will-change: transform, width;
  transition-property: transform, width;
  transition-duration: var(--anim-menu-btn-transition-duration, 0.2s);
}
.anim-menu-btn__icon--arrow-left::before,
.anim-menu-btn__icon--arrow-right::before,
.anim-menu-btn__icon--arrow-up::before,
.anim-menu-btn__icon--arrow-down::before {
  transform: translateY(-0.25em) rotate(0);
}
.anim-menu-btn__icon--arrow-left::after,
.anim-menu-btn__icon--arrow-right::after,
.anim-menu-btn__icon--arrow-up::after,
.anim-menu-btn__icon--arrow-down::after {
  transform: translateY(0.25em) rotate(0);
}

.anim-menu-btn__icon--arrow-right {
  transform: rotate(180deg);
}
.anim-menu-btn:active .anim-menu-btn__icon--arrow-right {
  transform: rotate(180deg) scale(0.9);
}

.anim-menu-btn--state-b .anim-menu-btn__icon--arrow-left::before, .anim-menu-btn--state-b .anim-menu-btn__icon--arrow-left::after,
.anim-menu-btn--state-b .anim-menu-btn__icon--arrow-right::before,
.anim-menu-btn--state-b .anim-menu-btn__icon--arrow-right::after,
.anim-menu-btn--state-b .anim-menu-btn__icon--arrow-up::before,
.anim-menu-btn--state-b .anim-menu-btn__icon--arrow-up::after,
.anim-menu-btn--state-b .anim-menu-btn__icon--arrow-down::before,
.anim-menu-btn--state-b .anim-menu-btn__icon--arrow-down::after {
  width: 50%;
}
.anim-menu-btn--state-b .anim-menu-btn__icon--arrow-left::before,
.anim-menu-btn--state-b .anim-menu-btn__icon--arrow-right::before,
.anim-menu-btn--state-b .anim-menu-btn__icon--arrow-up::before,
.anim-menu-btn--state-b .anim-menu-btn__icon--arrow-down::before {
  transform: translateY(0) rotate(-45deg);
}
.anim-menu-btn--state-b .anim-menu-btn__icon--arrow-left::after,
.anim-menu-btn--state-b .anim-menu-btn__icon--arrow-right::after,
.anim-menu-btn--state-b .anim-menu-btn__icon--arrow-up::after,
.anim-menu-btn--state-b .anim-menu-btn__icon--arrow-down::after {
  transform: translateY(0) rotate(45deg);
}
.anim-menu-btn--state-b:active .anim-menu-btn__icon--arrow-up {
  transform: rotate(90deg) scale(0.9);
}
.anim-menu-btn--state-b .anim-menu-btn__icon--arrow-up {
  transform: rotate(90deg);
}
.anim-menu-btn--state-b:active .anim-menu-btn__icon--arrow-down {
  transform: rotate(-90deg) scale(0.9);
}
.anim-menu-btn--state-b .anim-menu-btn__icon--arrow-down {
  transform: rotate(-90deg);
}

/* -------------------------------- 

File#: _1_back-to-top
Title: Back to top
Descr: Component that triggers scroll-y to the top of the page
Usage: codyhouse.co/license

-------------------------------- */
.back-to-top {
  --size: 50px;
  width: var(--size);
  height: var(--size);
  display: flex;
  position: fixed;
  right: var(--space-md);
  bottom: var(--space-md);
  z-index: var(--z-index-fixed-element, 10);
  border-radius: 50%;
  background-color: hsla(var(--color-contrast-higher-h), var(--color-contrast-higher-s), var(--color-contrast-higher-l), 0.9);
  transition: 0.2s;
  visibility: hidden;
  opacity: 0;
}
.back-to-top:hover {
  background-color: var(--color-contrast-higher);
}
.back-to-top .icon {
  --size: 20px;
  display: block;
  margin: auto;
  color: var(--color-bg);
}

.back-to-top--is-visible {
  visibility: visible;
  opacity: 1;
}

/* -------------------------------- 

File#: _1_details-list
Title: Details List
Descr: Pairs of related information displayed in a list
Usage: codyhouse.co/license

-------------------------------- */
:root {
  --details-list-border-width: 1px;
  --details-list-border-opacity: 0.15;
}

.details-list--rows .details-list__item {
  border-bottom: var(--details-list-border-width) solid hsla(var(--color-contrast-higher-h), var(--color-contrast-higher-s), var(--color-contrast-higher-l), var(--details-list-border-opacity));
}
.details-list--rows .details-list__item:last-child {
  border-bottom: none;
}

.details-list--cols .details-list__item {
  border-right: var(--details-list-border-width) solid hsla(var(--color-contrast-higher-h), var(--color-contrast-higher-s), var(--color-contrast-higher-l), var(--details-list-border-opacity));
}
.details-list--cols .details-list__item:last-child {
  border-right: none;
}

@media (min-width: 32rem) {
  .details-list--rows\@xs .details-list__item {
    border-right: 0;
    border-bottom: var(--details-list-border-width) solid hsla(var(--color-contrast-higher-h), var(--color-contrast-higher-s), var(--color-contrast-higher-l), var(--details-list-border-opacity));
  }
  .details-list--rows\@xs .details-list__item:last-child {
    border-bottom: none;
  }
  .details-list--cols\@xs .details-list__item {
    border-bottom: 0;
    border-right: var(--details-list-border-width) solid hsla(var(--color-contrast-higher-h), var(--color-contrast-higher-s), var(--color-contrast-higher-l), var(--details-list-border-opacity));
  }
  .details-list--cols\@xs .details-list__item:last-child {
    border-right: none;
  }
}
@media (min-width: 48rem) {
  .details-list--rows\@sm .details-list__item {
    border-right: 0;
    border-bottom: var(--details-list-border-width) solid hsla(var(--color-contrast-higher-h), var(--color-contrast-higher-s), var(--color-contrast-higher-l), var(--details-list-border-opacity));
  }
  .details-list--rows\@sm .details-list__item:last-child {
    border-bottom: none;
  }
  .details-list--cols\@sm .details-list__item {
    border-bottom: 0;
    border-right: var(--details-list-border-width) solid hsla(var(--color-contrast-higher-h), var(--color-contrast-higher-s), var(--color-contrast-higher-l), var(--details-list-border-opacity));
  }
  .details-list--cols\@sm .details-list__item:last-child {
    border-right: none;
  }
}
@media (min-width: 64rem) {
  .details-list--rows\@md .details-list__item {
    border-right: 0;
    border-bottom: var(--details-list-border-width) solid hsla(var(--color-contrast-higher-h), var(--color-contrast-higher-s), var(--color-contrast-higher-l), var(--details-list-border-opacity));
  }
  .details-list--rows\@md .details-list__item:last-child {
    border-bottom: none;
  }
  .details-list--cols\@md .details-list__item {
    border-bottom: 0;
    border-right: var(--details-list-border-width) solid hsla(var(--color-contrast-higher-h), var(--color-contrast-higher-s), var(--color-contrast-higher-l), var(--details-list-border-opacity));
  }
  .details-list--cols\@md .details-list__item:last-child {
    border-right: none;
  }
}
@media (min-width: 80rem) {
  .details-list--rows\@lg .details-list__item {
    border-right: 0;
    border-bottom: var(--details-list-border-width) solid hsla(var(--color-contrast-higher-h), var(--color-contrast-higher-s), var(--color-contrast-higher-l), var(--details-list-border-opacity));
  }
  .details-list--rows\@lg .details-list__item:last-child {
    border-bottom: none;
  }
  .details-list--cols\@lg .details-list__item {
    border-bottom: 0;
    border-right: var(--details-list-border-width) solid hsla(var(--color-contrast-higher-h), var(--color-contrast-higher-s), var(--color-contrast-higher-l), var(--details-list-border-opacity));
  }
  .details-list--cols\@lg .details-list__item:last-child {
    border-right: none;
  }
}
@media (min-width: 90rem) {
  .details-list--rows\@xl .details-list__item {
    border-right: 0;
    border-bottom: var(--details-list-border-width) solid hsla(var(--color-contrast-higher-h), var(--color-contrast-higher-s), var(--color-contrast-higher-l), var(--details-list-border-opacity));
  }
  .details-list--rows\@xl .details-list__item:last-child {
    border-bottom: none;
  }
  .details-list--cols\@xl .details-list__item {
    border-bottom: 0;
    border-right: var(--details-list-border-width) solid hsla(var(--color-contrast-higher-h), var(--color-contrast-higher-s), var(--color-contrast-higher-l), var(--details-list-border-opacity));
  }
  .details-list--cols\@xl .details-list__item:last-child {
    border-right: none;
  }
}
/* -------------------------------- 

File#: _1_feature-v2
Title: Feature v2
Descr: Content group containing two text components
Usage: codyhouse.co/license

-------------------------------- */
.feature-v2__label {
  display: flex;
  gap: var(--space-sm);
  align-items: center;
}
.feature-v2__label::after {
  content: "";
  height: 1px;
  flex-grow: 1;
  background-color: hsla(var(--color-contrast-higher-h), var(--color-contrast-higher-s), var(--color-contrast-higher-l), 0.1);
}

/* -------------------------------- 

File#: _1_feature-v4
Title: Feature v4
Descr: Content group containing media element + text that outsets its container at a specific breakpoint
Usage: codyhouse.co/license

-------------------------------- */
.feature-v4 {
  --feature-text-offset: 65%;
  position: relative;
  z-index: 1;
}

@media (min-width: 32rem) {
  .feature-v4__text-offset\@xs {
    width: calc(100% + var(--feature-text-offset));
  }
  .feature-v4--invert\@xs .feature-v4__grid > *:last-child {
    order: -1;
  }
  .feature-v4--invert\@xs .feature-v4__text-offset\@xs {
    margin-left: calc(var(--feature-text-offset) * -1);
  }
}
@media (min-width: 48rem) {
  .feature-v4__text-offset\@sm {
    width: calc(100% + var(--feature-text-offset));
  }
  .feature-v4--invert\@sm .feature-v4__grid > *:last-child {
    order: -1;
  }
  .feature-v4--invert\@sm .feature-v4__text-offset\@sm {
    margin-left: calc(var(--feature-text-offset) * -1);
  }
}
@media (min-width: 64rem) {
  .feature-v4__text-offset\@md {
    width: calc(100% + var(--feature-text-offset));
  }
  .feature-v4--invert\@md .feature-v4__grid > *:last-child {
    order: -1;
  }
  .feature-v4--invert\@md .feature-v4__text-offset\@md {
    margin-left: calc(var(--feature-text-offset) * -1);
  }
}
@media (min-width: 80rem) {
  .feature-v4__text-offset\@lg {
    width: calc(100% + var(--feature-text-offset));
  }
  .feature-v4--invert\@lg .feature-v4__grid > *:last-child {
    order: -1;
  }
  .feature-v4--invert\@lg .feature-v4__text-offset\@lg {
    margin-left: calc(var(--feature-text-offset) * -1);
  }
}
@media (min-width: 90rem) {
  .feature-v4__text-offset\@xl {
    width: calc(100% + var(--feature-text-offset));
  }
  .feature-v4--invert\@xl .feature-v4__grid > *:last-child {
    order: -1;
  }
  .feature-v4--invert\@xl .feature-v4__text-offset\@xl {
    margin-left: calc(var(--feature-text-offset) * -1);
  }
}
/* -------------------------------- 

File#: _1_feature
Title: Feature
Descr: Content group containing text + media (img, video, iframe, inline SVG)
Usage: codyhouse.co/license

-------------------------------- */
/* -------------------------------- 

File#: _1_flash-message
Title: Flash message
Descr: Modeless, non-interactive message to alert the user of a status change
Usage: codyhouse.co/license

-------------------------------- */
.flash-message {
  position: fixed;
  bottom: var(--space-md);
  left: var(--space-md);
  z-index: var(--z-index-fixed-element, 10);
  background-color: var(--color-bg-light);
  padding: var(--space-xs);
  box-shadow: var(--inner-glow), var(--shadow-ring, 0 0 0 1px hsla(0, 0%, 0%, 0.05)), var(--shadow-sm);
  border-radius: var(--radius-md);
  color: var(--color-contrast-high);
  font-size: var(--text-sm);
  transition: 0.2s;
  transform: translateY(16px);
  transform-origin: bottom left;
  opacity: 0;
  visibility: hidden;
}

.flash-message--is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

/* -------------------------------- 

File#: _1_google-maps
Title: Google Maps
Descr: Google Maps component
Usage: codyhouse.co/license

-------------------------------- */
.google-maps {
  width: 100%;
  height: 0;
  padding-bottom: 56.25%;
}

.google-maps--ratio-4\:1 {
  padding-bottom: 25%;
}

.google-maps--ratio-3\:1 {
  padding-bottom: 33%;
}

/* -------------------------------- 

File#: _1_language-picker
Title: Language Picker
Descr: A custom selector allowing users to choose their preferred language on a page
Usage: codyhouse.co/license

-------------------------------- */
:root {
  --picker-vertical-gap: 4px;
}

.language-picker {
  display: inline-block;
  position: relative;
}

.language-picker__form {
  display: none;
}

.language-picker__button .icon {
  height: 16px;
  width: 16px;
}
.language-picker__button .icon:first-of-type {
  margin-right: var(--space-xxxs);
}
.language-picker__button .icon:last-of-type {
  margin-left: var(--space-xxxs);
}

.language-picker__dropdown {
  position: absolute;
  left: 0;
  top: 100%;
  width: 200px;
  background-color: var(--color-bg-light);
  box-shadow: var(--inner-glow), var(--shadow-md);
  padding: var(--space-xxxs) 0;
  border-radius: var(--radius-md);
  z-index: var(--z-index-popover, 5);
  margin-top: var(--picker-vertical-gap);
  margin-bottom: var(--picker-vertical-gap);
  --space-unit: 1rem;
  --text-unit: 1rem;
  font-size: var(--text-unit);
  visibility: hidden;
  opacity: 0;
  transition: visibility 0s 0.2s, opacity 0.2s;
}

.language-picker__dropdown--right {
  right: 0;
  left: auto;
}

.language-picker__dropdown--up {
  bottom: 100%;
  top: auto;
}

.language-picker__button[aria-expanded=true] + .language-picker__dropdown {
  visibility: visible;
  opacity: 1;
  transition: visibility 0s, opacity 0.2s;
}

.language-picker__item {
  display: flex;
  align-items: center;
  text-decoration: none;
  padding: var(--space-xxs) var(--space-sm);
  color: var(--color-contrast-high);
  transition: background 0.2s;
}
.language-picker__item span {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.language-picker__item:hover {
  background-color: hsla(var(--color-contrast-higher-h), var(--color-contrast-higher-s), var(--color-contrast-higher-l), 0.075);
}
.language-picker__item:focus {
  outline: none;
  background-color: hsla(var(--color-primary-h), var(--color-primary-s), var(--color-primary-l), 0.1);
}
.language-picker__item[aria-selected=true] {
  position: relative;
  background-color: var(--color-primary);
  color: var(--color-white);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.language-picker__item[aria-selected=true]:focus {
  outline: 2px solid hsla(var(--color-primary-h), var(--color-primary-s), var(--color-primary-l), 0.2);
}
.language-picker__item[aria-selected=true]::after {
  content: "";
  height: 16px;
  width: 16px;
  background-color: currentColor;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpolyline stroke-width='2' stroke='%23ffffff' fill='none' stroke-linecap='round' stroke-linejoin='round' points='1,9 5,13 15,3 '/%3E%3C/svg%3E");
          mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpolyline stroke-width='2' stroke='%23ffffff' fill='none' stroke-linecap='round' stroke-linejoin='round' points='1,9 5,13 15,3 '/%3E%3C/svg%3E");
  margin-left: auto;
}

.language-picker__flag {
  display: flex;
  align-items: center;
}
.language-picker__flag::before {
  display: none;
  flex-shrink: 0;
  content: "";
  height: 16px;
  width: 16px;
  margin-right: var(--space-xxs);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
}
.language-picker__dropdown .language-picker__flag::before {
  margin-right: var(--space-xs);
}

.language-picker--flags .language-picker__flag::before {
  display: inline-block;
  display: inline-flex;
}
.language-picker--flags .language-picker__button .icon:first-of-type {
  display: none;
}

.language-picker__flag--deutsch::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cpath d='M48,18H0V8c0-1.105,0.895-2,2-2h44c1.105,0,2,0.895,2,2V18z'/%3E%3Crect y='18' fill='%23EE0000' width='48' height='12'/%3E%3Cpath fill='%23FDCF00' d='M48,40c0,1.105-0.895,2-2,2H2c-1.105,0-2-0.895-2-2V30h48V40z'/%3E%3C/svg%3E");
}

.language-picker__flag--english::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cpath fill='%23002781' d='M46,6H2C0.896,6,0,6.896,0,8v32c0,1.104,0.896,2,2,2h44c1.104,0,2-0.896,2-2V8C48,6.896,47.104,6,46,6z'/%3E%3Cpath fill='%23E6E6E6' d='M48,8c0-1.104-0.896-2-2-2h-5.161L28,15.876V6h-8v9.876L7.161,6H2C0.896,6,0,6.896,0,8v2.586L12.239,20H0v8 h12.239L0,37.415V40c0,1.104,0.896,2,2,2h5.161L20,32.124V42h8v-9.876L40.839,42H46c1.104,0,2-0.896,2-2v-2.585L35.761,28H48v-8 H35.761L48,10.586V8z'/%3E%3Cpolygon fill='%23D10D24' points='48,22 26,22 26,6 22,6 22,22 0,22 0,26 22,26 22,42 26,42 26,26 48,26 '/%3E%3Cpath fill='%23D10D24' d='M47.001,6.307L29.2,20h3.28L48,8.062V8C48,7.268,47.587,6.656,47.001,6.307z'/%3E%3Cpath fill='%23D10D24' d='M32.48,28H29.2l17.801,13.693C47.587,41.344,48,40.732,48,40v-0.062L32.48,28z'/%3E%3Cpath fill='%23D10D24' d='M15.52,28L0,39.938V40c0,0.732,0.413,1.344,0.999,1.693L18.8,28H15.52z'/%3E%3Cpath fill='%23D10D24' d='M15.52,20h3.28L0.999,6.307C0.413,6.656,0,7.268,0,8v0.062L15.52,20z'/%3E%3C/svg%3E");
}

.language-picker__flag--francais::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cpath fill='%2301209F' d='M16,42H2c-1.105,0-2-0.895-2-2V8c0-1.105,0.895-2,2-2h14V42z'/%3E%3Cpath fill='%23EF4234' d='M48,40c0,1.105-0.895,2-2,2H32V6h14c1.105,0,2,0.895,2,2V40z'/%3E%3Crect x='16' y='6' fill='%23E6E6E6' width='16' height='36'/%3E%3C/svg%3E");
}

.language-picker__flag--italiano::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cpath fill='%23009345' d='M16,42H2c-1.105,0-2-0.895-2-2V8c0-1.105,0.895-2,2-2h14V42z'/%3E%3Cpath fill='%23CF2B36' d='M48,40c0,1.105-0.895,2-2,2H32V6h14c1.105,0,2,0.895,2,2V40z'/%3E%3Crect x='16' y='6' fill='%23E6E6E6' width='16' height='36'/%3E%3C/svg%3E");
}

.language-picker--hide-label .language-picker__button .icon {
  margin-left: 0;
}
.language-picker--hide-label .language-picker__button .icon:first-of-type {
  display: none;
}
.language-picker--hide-label .language-picker__button em {
  display: none;
}
.language-picker--hide-label .language-picker__button .language-picker__flag::before {
  margin-right: var(--space-xxxs);
}

.language-picker--hide-label .language-picker__flag::before {
  display: inline-block;
  display: inline-flex;
}

/* -------------------------------- 

File#: _1_list
Title: List
Descr: Custom list component
Usage: codyhouse.co/license

-------------------------------- */
:root {
  --list-space-y: 0.375em;
  --list-offset: 1em;
  --list-line-height-multiplier: 1;
}

.list, .text-component .list {
  padding-left: 0;
  list-style: none;
}
.list ul, .list ol, .text-component .list ul, .text-component .list ol {
  list-style: none;
  margin: 0;
  margin-top: calc(var(--list-space-y) / 2 * var(--text-space-y-multiplier, 1));
  padding-top: calc(var(--list-space-y) / 2 * var(--text-space-y-multiplier, 1));
  padding-left: var(--list-offset);
}
.list li, .text-component .list li {
  padding-bottom: calc(var(--list-space-y) / 2 * var(--text-space-y-multiplier, 1));
  margin-bottom: calc(var(--list-space-y) / 2 * var(--text-space-y-multiplier, 1));
  line-height: calc(var(--body-line-height) * var(--list-line-height-multiplier));
}
.list > li:last-child, .list ul > li:last-child, .list ol > li:last-child, .text-component .list > li:last-child, .text-component .list ul > li:last-child, .text-component .list ol > li:last-child {
  margin-bottom: 0;
}
.list:not(.list--border) > li:last-child, .list ul > li:last-child, .list ol > li:last-child, .text-component .list:not(.list--border) > li:last-child, .text-component .list ul > li:last-child, .text-component .list ol > li:last-child {
  padding-bottom: 0;
}

/* #region (ul + ol) */
.list--ul, .text-component .list--ul,
.list--ol, .text-component .list--ol {
  --list-offset: calc(var(--list-bullet-size) + var(--list-bullet-margin-right));
}
.list--ul ul, .list--ul ol, .text-component .list--ul ul, .text-component .list--ul ol,
.list--ol ul,
.list--ol ol, .text-component .list--ol ul, .text-component .list--ol ol {
  padding-left: 0;
}
.list--ul li, .text-component .list--ul li,
.list--ol li, .text-component .list--ol li {
  padding-left: var(--list-offset);
}
.list--ul li::before, .text-component .list--ul li::before,
.list--ol li::before, .text-component .list--ol li::before {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: var(--list-bullet-size);
  height: var(--list-bullet-size);
  vertical-align: middle;
  position: relative;
  top: -0.1em;
  left: calc(var(--list-bullet-margin-right) * -1);
  margin-left: calc(var(--list-bullet-size) * -1);
}

.list--ul, .text-component .list--ul {
  --list-bullet-size: 7px;
  --list-bullet-margin-right: 12px;
}
.list--ul > li::before, .text-component .list--ul > li::before {
  content: "";
  border-radius: 50%;
  color: hsla(var(--color-contrast-higher-h), var(--color-contrast-higher-s), var(--color-contrast-higher-l), 0.1);
  background-color: currentColor;
}
.list--ul ul li::before, .text-component .list--ul ul li::before {
  background-color: transparent;
  box-shadow: inset 0 0 0 2px currentColor;
}

.list--ol, .text-component .list--ol {
  --list-bullet-size: 26px;
  --list-bullet-margin-right: 6px;
  --list-bullet-font-size: 14px;
  counter-reset: list-items;
}
.list--ol > li, .text-component .list--ol > li {
  counter-increment: list-items;
}
.list--ol ol, .text-component .list--ol ol {
  counter-reset: list-items;
}
.list--ol > li::before, .text-component .list--ol > li::before {
  content: counter(list-items);
  font-size: var(--list-bullet-font-size, 14px);
  background-color: hsla(var(--color-contrast-higher-h), var(--color-contrast-higher-s), var(--color-contrast-higher-l), 0.075);
  color: var(--color-contrast-higher);
  line-height: 1;
  border-radius: 50%;
}
.list--ol ol > li::before, .text-component .list--ol ol > li::before {
  background-color: transparent;
  box-shadow: inset 0 0 0 2px hsla(var(--color-contrast-higher-h), var(--color-contrast-higher-s), var(--color-contrast-higher-l), 0.075);
}

/* #endregion */
/* #region (border) */
.list--border li:not(:last-child), .text-component .list--border li:not(:last-child) {
  border-bottom: 1px solid var(--color-contrast-lower);
}
.list--border ul, .list--border ol, .text-component .list--border ul, .text-component .list--border ol {
  border-top: 1px solid var(--color-contrast-lower);
}

/* #endregion */
/* #region (icons) */
.list--icons, .text-component .list--icons {
  --list-bullet-size: 24px;
  --list-bullet-margin-right: 8px;
  --list-offset: calc(var(--list-bullet-size) + var(--list-bullet-margin-right));
}
.list--icons ul, .list--icons ol, .text-component .list--icons ul, .text-component .list--icons ol {
  padding-left: var(--list-offset);
}

.list__icon {
  position: relative;
  width: var(--list-bullet-size);
  height: var(--list-bullet-size);
  margin-right: var(--list-bullet-margin-right);
}
.list__icon:not(.top-0) {
  top: calc((1em * var(--body-line-height) * var(--list-line-height-multiplier) - var(--list-bullet-size)) / 2);
}

/* #endregion */
/* -------------------------------- 

File#: _1_main-footer-v3
Title: Main Footer v3
Descr: Footer navigation template
Usage: codyhouse.co/license

-------------------------------- */
.footer-v3 {
  position: relative;
  z-index: 1;
}

.footer-v3__logo a, .footer-v3__logo svg, .footer-v3__logo img {
  width: 104px;
  height: 30px;
  display: block;
}

.footer-v3__nav {
  margin: var(--space-lg) 0;
}

.footer-v3__nav-item {
  margin-bottom: var(--space-sm);
}
.footer-v3__nav-item a {
  color: var(--color-contrast-high);
  font-size: 1.25em;
}
.footer-v3__nav-item a:hover {
  color: var(--color-primary);
}

.footer-v3__socials {
  display: flex;
  align-items: center;
}
.footer-v3__socials a {
  text-decoration: none;
  display: inline-block;
  margin: 0 var(--space-xs) 0 0;
  color: var(--color-contrast-high);
}
.footer-v3__socials a:hover {
  color: var(--color-primary);
}
.footer-v3__socials a .icon {
  display: block;
  width: 1.25em;
  height: 1.25em;
}

@supports (display: grid) {
  @media (min-width: 64rem) {
    .footer-v3__container {
      display: grid;
      grid-template-columns: 130px 1fr 130px;
    }
    .footer-v3__nav {
      margin: 0;
    }
    .footer-v3__nav-list {
      display: flex;
      height: 100%;
      align-items: center;
      justify-content: center;
      flex-wrap: wrap;
    }
    .footer-v3__nav-item {
      padding: 0 var(--space-xs);
      margin: 0;
      position: relative;
    }
    .footer-v3__nav-item a {
      font-size: 0.875em;
    }
    .footer-v3__nav-item::after {
      content: "";
      display: inline-block;
      position: absolute;
      height: 0.8em;
      width: 1px;
      right: 0;
      top: calc(50% - 0.4em);
      background-color: var(--color-contrast-lower);
    }
    .footer-v3__nav-item:first-child {
      padding-left: 0;
    }
    .footer-v3__nav-item:last-child {
      padding-right: 0;
    }
    .footer-v3__nav-item:last-child::after {
      display: none;
    }
    .footer-v3__socials a {
      margin: 0 0 0 var(--space-xs);
    }
    .footer-v3__socials a .icon {
      width: 1em;
      height: 1em;
    }
  }
}
/* -------------------------------- 

File#: _1_main-footer-v5
Title: Main Footer v5
Descr: Footer navigation template
Usage: codyhouse.co/license

-------------------------------- */
.footer-v5 {
  position: relative;
  z-index: 1;
}

.footer-v5__popular-link {
  display: inline-block;
  padding: var(--space-xxs);
  background-color: hsla(var(--color-contrast-higher-h), var(--color-contrast-higher-s), var(--color-contrast-higher-l), 0.1);
  border-radius: var(--radius-md);
  color: var(--color-contrast-medium);
  line-height: 1;
  transition: 0.2s;
}
.footer-v5__popular-link:hover {
  color: var(--color-contrast-high);
  background-color: hsla(var(--color-contrast-higher-h), var(--color-contrast-higher-s), var(--color-contrast-higher-l), 0.075);
}

.footer-v5__back-to-top {
  color: var(--color-contrast-medium);
  transition: color 0.2s;
}
.footer-v5__back-to-top:hover {
  color: var(--color-contrast-high);
}

.footer-v5__link {
  color: var(--color-contrast-medium);
  text-decoration: none;
  transition: color 0.2s;
}
.footer-v5__link:hover {
  color: var(--color-contrast-high);
  text-decoration: underline;
}

.footer-v5__social-btn {
  display: block;
  text-decoration: none;
  color: var(--color-contrast-medium);
  transition: color 0.2s;
}
.footer-v5__social-btn .icon {
  display: block;
}
.footer-v5__social-btn:hover {
  color: var(--color-contrast-high);
}

/* -------------------------------- 

File#: _1_main-header
Title: Main Header
Descr: Accessible website navigation
Usage: codyhouse.co/license

-------------------------------- */
:root {
  --header-height: 50px;
}
@media (min-width: 64rem) {
  :root {
    --header-height: 70px;
  }
}

.header {
  height: var(--header-height);
  width: 100%;
  background-color: var(--color-bg);
  z-index: var(--z-index-header, 3);
}

.header__container {
  height: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.header__logo {
  position: relative;
  z-index: 2;
  flex-shrink: 0;
}
.header__logo a, .header__logo svg, .header__logo img {
  display: block;
}

.header__nav {
  position: absolute;
  z-index: 1;
  top: 0;
  left: 0;
  width: 100%;
  max-height: 100vh;
  background-color: var(--color-bg);
  box-shadow: var(--shadow-md);
  overflow: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  display: none;
}
.header__nav::before {
  content: "";
  display: block;
  position: sticky;
  top: 0;
  height: var(--header-height);
  background: inherit;
  border-bottom: 1px solid var(--color-contrast-lower);
}

.header__nav--is-visible {
  display: block;
}

.header__nav-inner {
  padding: var(--space-md);
}

.header__label {
  font-size: var(--text-sm);
  color: var(--color-contrast-medium);
  margin-bottom: var(--space-sm);
}

.header__item {
  margin-bottom: var(--space-sm);
}

.header__link {
  font-size: var(--text-lg);
  color: var(--color-contrast-higher);
  text-decoration: none;
}
.header__link:hover, .header__link[aria-current] {
  color: var(--color-primary);
}

.header__nav-btn {
  font-size: var(--text-lg);
  width: 100%;
}

.header__item--divider {
  height: 1px;
  width: 100%;
  background-color: var(--color-contrast-lower);
}

.header__trigger {
  position: relative;
  z-index: 2;
}

.header__trigger-icon {
  position: relative;
  display: block;
  height: 2px;
  width: 1em;
  background-color: currentColor;
  margin-right: var(--space-xxs);
  transition: 0.2s;
}
.header__trigger-icon::before, .header__trigger-icon::after {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: inherit;
  height: inherit;
  background-color: currentColor;
  transition: 0.2s;
}
.header__trigger-icon::before {
  transform: translateY(-5px);
}
.header__trigger-icon::after {
  transform: translateY(5px);
}

.header__trigger[aria-expanded=true] .header__trigger-icon {
  background-color: transparent;
}
.header__trigger[aria-expanded=true] .header__trigger-icon::before {
  transform: rotate(45deg);
}
.header__trigger[aria-expanded=true] .header__trigger-icon::after {
  transform: rotate(-45deg);
}

@media (min-width: 64rem) {
  .header__nav {
    position: static;
    background-color: transparent;
    width: auto;
    max-height: none;
    box-shadow: none;
    overflow: visible;
    overscroll-behavior: auto;
    display: block;
  }
  .header__nav::before {
    display: none;
  }
  .header__nav-inner {
    padding: 0;
  }
  .header__label {
    position: absolute;
    clip: rect(1px, 1px, 1px, 1px);
    -webkit-clip-path: inset(50%);
            clip-path: inset(50%);
  }
  .header__list {
    display: flex;
    align-items: center;
  }
  .header__item {
    display: inline-block;
    margin-bottom: 0;
    margin-left: var(--space-md);
  }
  .header__link, .header__nav-btn {
    font-size: 1.125rem;
  }
  .header__item--divider {
    height: 1em;
    width: 1px;
  }
  .header__trigger {
    display: none;
  }
}
/* -------------------------------- 

File#: _1_modal-window
Title: Modal Window
Descr: A modal dialog used to display critical information
Usage: codyhouse.co/license

-------------------------------- */
.modal {
  position: fixed;
  z-index: var(--z-index-overlay, 15);
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  opacity: 0;
  visibility: hidden;
}
.modal:not(.modal--is-visible) {
  pointer-events: none;
  background-color: transparent;
}

.modal--is-visible {
  opacity: 1;
  visibility: visible;
}

/* close buttons */
.modal__close-btn {
  display: flex;
  flex-shrink: 0;
  border-radius: 50%;
  transition: 0.2s;
}
.modal__close-btn .icon {
  display: block;
  margin: auto;
}

.modal__close-btn--outer { /* close button - outside the modal__content */
  --size: 48px;
  width: var(--size);
  height: var(--size);
  position: fixed;
  top: var(--space-sm);
  right: var(--space-sm);
  z-index: var(--z-index-fixed-element, 10);
  background-color: hsla(var(--color-black-h), var(--color-black-s), var(--color-black-l), 0.9);
  transition: 0.2s;
}
.modal__close-btn--outer .icon {
  color: var(--color-white); /* icon color */
  transition: transform 0.3s var(--ease-out-back);
}
.modal__close-btn--outer:hover {
  background-color: hsla(var(--color-black-h), var(--color-black-s), var(--color-black-l), 1);
}
.modal__close-btn--outer:hover .icon {
  transform: scale(1.1);
}

.modal__close-btn--inner { /* close button - inside the modal__content */
  --size: 32px;
  width: var(--size);
  height: var(--size);
  background-color: var(--color-bg-light);
  box-shadow: var(--inner-glow), var(--shadow-sm);
  transition: 0.2s;
}
.modal__close-btn--inner .icon {
  color: inherit; /* icon color */
}
.modal__close-btn--inner:hover {
  background-color: var(--color-bg-lighter);
  box-shadow: var(--inner-glow), var(--shadow-md);
}

/* animations */
:root {
  --modal-transition-duration: 0.2s; /* fallback (i.e., unless specified differently in the variations 👇) */
}

@media (prefers-reduced-motion: no-preference) {
  .modal--animate-fade {
    --modal-transition-duration: 0.2s;
    transition: opacity var(--modal-transition-duration), background-color var(--modal-transition-duration), visibility 0s var(--modal-transition-duration);
  }
  .modal--animate-fade.modal--is-visible {
    transition: opacity var(--modal-transition-duration), background-color var(--modal-transition-duration), visibility 0s;
  }
  .modal--animate-scale,
  .modal--animate-translate-up,
  .modal--animate-translate-down,
  .modal--animate-translate-right,
  .modal--animate-translate-left {
    --modal-transition-duration: 0.2s;
    transition: opacity var(--modal-transition-duration), background-color var(--modal-transition-duration), visibility 0s var(--modal-transition-duration);
  }
  .modal--animate-scale .modal__content,
  .modal--animate-translate-up .modal__content,
  .modal--animate-translate-down .modal__content,
  .modal--animate-translate-right .modal__content,
  .modal--animate-translate-left .modal__content {
    will-change: transform;
    transition: transform var(--modal-transition-duration) var(--ease-out);
  }
  .modal--animate-scale.modal--is-visible,
  .modal--animate-translate-up.modal--is-visible,
  .modal--animate-translate-down.modal--is-visible,
  .modal--animate-translate-right.modal--is-visible,
  .modal--animate-translate-left.modal--is-visible {
    transition: opacity var(--modal-transition-duration), background-color var(--modal-transition-duration), visibility 0s;
  }
  .modal--animate-scale.modal--is-visible .modal__content,
  .modal--animate-translate-up.modal--is-visible .modal__content,
  .modal--animate-translate-down.modal--is-visible .modal__content,
  .modal--animate-translate-right.modal--is-visible .modal__content,
  .modal--animate-translate-left.modal--is-visible .modal__content {
    transform: scale(1); /* reset all transformations */
  }
  .modal--animate-slide-up,
  .modal--animate-slide-down,
  .modal--animate-slide-right,
  .modal--animate-slide-left {
    --modal-transition-duration: 0.3s;
    transition: opacity 0s var(--modal-transition-duration), background-color var(--modal-transition-duration), visibility 0s var(--modal-transition-duration);
  }
  .modal--animate-slide-up .modal__content,
  .modal--animate-slide-down .modal__content,
  .modal--animate-slide-right .modal__content,
  .modal--animate-slide-left .modal__content {
    will-change: transform;
    transition: transform var(--modal-transition-duration) var(--ease-out);
  }
  .modal--animate-slide-up.modal--is-visible,
  .modal--animate-slide-down.modal--is-visible,
  .modal--animate-slide-right.modal--is-visible,
  .modal--animate-slide-left.modal--is-visible {
    transition: background-color var(--modal-transition-duration), visibility 0s;
  }
  .modal--animate-slide-up.modal--is-visible .modal__content,
  .modal--animate-slide-down.modal--is-visible .modal__content,
  .modal--animate-slide-right.modal--is-visible .modal__content,
  .modal--animate-slide-left.modal--is-visible .modal__content {
    transform: scale(1); /* reset all transformations */
  }
  /* scale */
  .modal--animate-scale .modal__content {
    transform: scale(0.95);
  }
  /* translate */
  .modal--animate-translate-up .modal__content {
    transform: translateY(40px);
  }
  .modal--animate-translate-down .modal__content {
    transform: translateY(-40px);
  }
  .modal--animate-translate-right .modal__content {
    transform: translateX(-40px);
  }
  .modal--animate-translate-left .modal__content {
    transform: translateX(40px);
  }
  /* slide */
  .modal--animate-slide-up .modal__content {
    transform: translateY(100%);
  }
  .modal--animate-slide-down .modal__content {
    transform: translateY(-100%);
  }
  .modal--animate-slide-right .modal__content {
    transform: translateX(-100%);
  }
  .modal--animate-slide-left .modal__content {
    transform: translateX(100%);
  }
}
/* load content - optional */
.modal--is-loading .modal__content {
  visibility: hidden;
}
.modal--is-loading .modal__loader {
  display: flex;
}

.modal__loader { /* loader icon */
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  justify-content: center;
  align-items: center;
  display: none;
  pointer-events: none;
}

/* --image */
.modal-img-btn {
  position: relative;
  cursor: pointer;
}
.modal-img-btn::after {
  content: "";
  position: absolute;
  z-index: 1;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: hsla(var(--color-black-h), var(--color-black-s), var(--color-black-l), 0);
  transition: background 0.2s;
}
.modal-img-btn:hover::after {
  background-color: hsla(var(--color-black-h), var(--color-black-s), var(--color-black-l), 0.7);
}
.modal-img-btn:hover .modal-img-btn__icon-wrapper {
  opacity: 1;
}

.modal-img-btn__icon-wrapper {
  position: absolute;
  z-index: 2;
  top: calc(50% - 24px);
  left: calc(50% - 24px);
  width: 48px;
  height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background-color: hsla(var(--color-black-h), var(--color-black-s), var(--color-black-l), 0.7);
  opacity: 0;
  transition: opacity 0.2s;
}
.modal-img-btn__icon-wrapper .icon {
  color: var(--color-white);
}

/* -------------------------------- 

File#: _1_notice
Title: Notice 
Descr: Modeless notice banner, visible by default
Usage: codyhouse.co/license

-------------------------------- */
.notice {
  position: fixed;
  width: 100%;
  pointer-events: none;
  z-index: var(--z-index-fixed-element, 10);
}

.notice__banner {
  pointer-events: auto;
}

.notice__close-btn {
  --size: 32px;
  display: flex;
  width: var(--size);
  height: var(--size);
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  border-radius: 50%;
  background-color: hsla(var(--color-contrast-higher-h), var(--color-contrast-higher-s), var(--color-contrast-higher-l), 0.5);
  color: var(--color-bg);
  transition: 0.2s;
}
.notice__close-btn:hover {
  background-color: hsla(var(--color-contrast-higher-h), var(--color-contrast-higher-s), var(--color-contrast-higher-l), 0.7);
}
.notice__close-btn .icon {
  --size: 16px;
}

.notice--hide {
  opacity: 0;
  visibility: hidden;
}

@media screen and (prefers-reduced-motion: no-preference) {
  .notice {
    transition: opacity 0.3s, visibility 0s 0.3s;
  }
  .notice__banner {
    transition: transform 0.3s;
  }
  .notice--hide .notice__banner {
    transform: translateY(20px);
  }
}
/* -------------------------------- 

File#: _1_popover
Title: Popover
Descr: A pop-up box controlled by a trigger element
Usage: codyhouse.co/license

-------------------------------- */
:root {
  --popover-width: 250px;
  --popover-control-gap: 4px;
  --popover-viewport-gap: 20px;
  --popover-transition-duration: 0.2s;
}

.popover {
  position: fixed;
  width: var(--popover-width);
  z-index: var(--z-index-popover, 5);
  margin-top: var(--popover-control-gap);
  margin-bottom: var(--popover-control-gap);
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  visibility: hidden;
  opacity: 0;
  transition: visibility 0s var(--popover-transition-duration), opacity var(--popover-transition-duration);
}

.popover--is-visible {
  visibility: visible;
  opacity: 1;
  transition: visibility 0s, opacity var(--popover-transition-duration);
}

/* -------------------------------- 

File#: _1_search-input
Title: Search input
Descr: Search input field with custom button
Usage: codyhouse.co/license

-------------------------------- */
:root {
  --search-input-btn-width: 2.2em;
  --search-input-icon-size: 1em;
  --search-input-shortcut-margin: 0.325em; /* gap between the shortcut badge and the input edges */
}

.search-input {
  position: relative;
}

.search-input__input {
  width: 100%;
  height: 100%;
}
.search-input__input::-webkit-search-decoration, .search-input__input::-webkit-search-cancel-button, .search-input__input::-webkit-search-results-button, .search-input__input::-webkit-search-results-decoration {
  -webkit-appearance: none;
}
.search-input__input::-ms-clear, .search-input__input::-ms-reveal {
  display: none;
  width: 0;
  height: 0;
}
.search-input--icon-right .search-input__input {
  padding-right: var(--search-input-btn-width);
}
.search-input--icon-left .search-input__input {
  padding-left: var(--search-input-btn-width);
}

.search-input__btn {
  background-color: transparent;
  padding: 0;
  border: 0;
  border-radius: 0;
  color: inherit;
  line-height: inherit;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  position: absolute;
  top: 0;
  right: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100%;
  width: var(--search-input-btn-width);
}
.search-input__btn:active .icon {
  transform: translateY(2px);
}
.search-input__btn .icon {
  display: block;
  --size: var(--search-input-icon-size);
  margin-left: auto;
  margin-right: auto;
  color: var(--color-contrast-low); /* icon color */
  transition: 0.2s;
}
.search-input--icon-left .search-input__btn {
  left: 0;
  right: auto;
  pointer-events: none;
}

.search-input__btn:focus .icon,
.search-input .search-input__input:focus + .search-input__btn .icon {
  color: var(--color-primary); /* active icon color */
}

/* --shortcut */
.search-input__shortcut {
  position: absolute;
  right: var(--search-input-shortcut-margin);
  top: var(--search-input-shortcut-margin);
  height: calc(100% - var(--search-input-shortcut-margin) * 2);
  display: flex;
  align-items: center;
  background-color: var(--color-bg);
  border: 1px solid var(--color-contrast-lower);
  border-radius: var(--radius-sm);
  --space-unit: 1em;
  padding: 0 var(--space-xxxs);
  line-height: 1;
  color: var(--color-contrast-medium);
}

.search-input:focus-within .search-input__shortcut {
  display: none;
}

/* -------------------------------- 

File#: _1_text-divider
Title: Text divider
Descr: Labelled horizontal divider for text components
Usage: codyhouse.co/license

-------------------------------- */
.text-divider {
  margin: var(--space-lg) auto;
  display: flex;
  text-align: center;
  align-items: center;
}
.text-divider span {
  font-size: var(--text-sm);
  white-space: nowrap;
  padding: 0 var(--space-sm);
}
.text-divider::before, .text-divider::after {
  content: "";
  display: inline-block;
  height: 1px;
  width: 20px;
  flex-grow: 1;
  background: var(--color-contrast-lower);
  vertical-align: middle;
}

.text-component .text-divider {
  margin: calc(var(--space-md) * var(--text-space-y-multiplier)) auto;
}

/* -------------------------------- 

File#: _1_tooltip
Title: Tooltip
Descr: A popup displaying additional text information
Usage: codyhouse.co/license

-------------------------------- */
:root {
  --tooltip-triangle-size: 12px;
}

.tooltip-trigger { /* style inline-text tooltip trigger */
  white-space: nowrap;
  border-bottom: 1px dotted var(--color-contrast-high);
  cursor: help;
}

.tooltip { /* tooltip element - created using js */
  position: absolute;
  z-index: var(--z-index-popover, 5);
  display: inline-block;
  padding: var(--space-xxs) var(--space-xs);
  border-radius: var(--radius-md);
  max-width: 200px;
  background-color: hsla(var(--color-contrast-higher-h), var(--color-contrast-higher-s), var(--color-contrast-higher-l), 0.98);
  box-shadow: var(--shadow-md);
  color: var(--color-bg);
  font-size: var(--text-sm);
  line-height: 1.4;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  transition: opacity 0.2s, visibility 0.2s;
}
.tooltip a {
  color: inherit;
  text-decoration: underline;
}
@supports ((-webkit-clip-path: inset(50%)) or (clip-path: inset(50%))) {
  .tooltip::before { /* tooltip triangle  */
    content: "";
    position: absolute;
    background-color: inherit;
    border: inherit;
    width: var(--tooltip-triangle-size);
    height: var(--tooltip-triangle-size);
    -webkit-clip-path: polygon(0% 0%, 100% 100%, 100% 100%, 0% 100%);
            clip-path: polygon(0% 0%, 100% 100%, 100% 100%, 0% 100%);
  }
}

.tootip:not(.tooltip--sticky) {
  pointer-events: none;
}

/* size variations */
.tooltip--sm {
  max-width: 150px;
  font-size: var(--text-xs);
  padding: var(--space-xxxs) var(--space-xxs);
}

.tooltip--md {
  max-width: 300px;
  padding: var(--space-xs) var(--space-sm);
}

.tooltip--lg {
  max-width: 350px;
  font-size: var(--text-base-size);
  padding: var(--space-xs) var(--space-sm);
}

/* tooltip position */
.tooltip {
  /* variable used in JS to proper place tooltip triangle */
  --tooltip-triangle-translate: 0px;
}

.tooltip--top::before, .tooltip--bottom::before {
  left: calc(50% - var(--tooltip-triangle-size) / 2);
}

.tooltip--top::before {
  bottom: calc(var(--tooltip-triangle-size) * -0.5);
  transform: translateX(var(--tooltip-triangle-translate)) rotate(-45deg);
}

.tooltip--bottom::before {
  top: calc(var(--tooltip-triangle-size) * -0.5);
  transform: translateX(var(--tooltip-triangle-translate)) rotate(135deg);
}

.tooltip--left::before, .tooltip--right::before {
  top: calc(50% - var(--tooltip-triangle-size) / 2);
}

.tooltip--left::before {
  right: calc(var(--tooltip-triangle-size) * -0.5);
  transform: translateX(var(--tooltip-triangle-translate)) rotate(-135deg);
}

.tooltip--right::before {
  left: calc(var(--tooltip-triangle-size) * -0.5);
  transform: translateX(var(--tooltip-triangle-translate)) rotate(45deg);
}

.tooltip--is-hidden {
  /* class used in JS to hide the tooltip element before its top/left positions are set */
  visibility: hidden;
  opacity: 0;
}

/* -------------------------------- 

File#: _2_adv-custom-select
Title: Advanced Custom Select
Descr: Custom select with advanced structure options
Usage: codyhouse.co/license

-------------------------------- */
.adv-select-popover {
  --space-unit: 1rem;
  --text-unit: 1rem;
  font-size: var(--text-unit);
}
.adv-select-popover.popover {
  --popover-width: 250px;
  --popover-control-gap: 4px;
  --popover-viewport-gap: 20px;
  --popover-transition-duration: 0.2s;
}
@media (min-width: 64rem) {
  .adv-select-popover.popover {
    --popover-width: 320px;
  }
}

.adv-select-popover__optgroup:not(:first-of-type) {
  padding-top: var(--space-xxs);
}

.adv-select-popover__optgroup:not(:last-of-type) {
  border-bottom: 1px solid hsla(var(--color-contrast-higher-h), var(--color-contrast-higher-s), var(--color-contrast-higher-l), 0.1);
  padding-bottom: var(--space-xxs);
}

.adv-select-popover__check {
  display: none;
}

.adv-select-popover__option {
  position: relative;
  cursor: pointer;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  transition: 0.2s;
}
.adv-select-popover__option:hover {
  background-color: hsla(var(--color-contrast-higher-h), var(--color-contrast-higher-s), var(--color-contrast-higher-l), 0.075);
}
.adv-select-popover__option:focus {
  outline: none;
  background-color: hsla(var(--color-primary-h), var(--color-primary-s), var(--color-primary-l), 0.15);
}
.adv-select-popover__option[aria-selected=true] {
  background-color: var(--color-primary);
  color: var(--color-white);
}
.adv-select-popover__option[aria-selected=true] .adv-select-popover__check {
  display: block;
}
.adv-select-popover__option[aria-selected=true]:focus {
  box-shadow: inset 0 0 0 2px var(--color-primary-dark);
}

/* -------------------------------- 

File#: _2_flexi-header
Title: Flexi Header
Descr: Customizable header template
Usage: codyhouse.co/license

-------------------------------- */
:root {
  --f-header-height: 50px;
  --f-header-logo-width: 104px;
}
@media (min-width: 64rem) {
  :root {
    --f-header-height: 70px;
  }
}

.f-header {
  height: var(--f-header-height);
  width: 100%;
  z-index: var(--z-index-header, 3);
}
.f-header::before { /* used in JS to detect menu style */
  display: none;
  content: "mobile";
}

.f-header--expanded {
  /* class added when navigation is visible - small devices only */
}

.f-header__mobile-content { /* logo + menu button on small devices */
  position: relative;
  display: flex;
  height: 100%;
  justify-content: space-between;
  align-items: center;
  z-index: 2;
}

.f-header__logo {
  display: block;
  width: var(--f-header-logo-width);
  flex-shrink: 0;
  text-decoration: none;
}
.f-header__logo svg, .f-header__logo img {
  display: block;
}

.f-header__nav-control { /* menu button */
  --anim-menu-btn-size: 40px;
  /* 🍔 icon */
  --anim-menu-btn-icon-size: 28px;
  --anim-menu-btn-icon-stroke: 2px;
}

.f-header__nav {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  max-height: calc(100vh - var(--f-header-offset, 0px));
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  padding: 0 0 var(--space-md);
  background-color: var(--color-bg);
  box-shadow: var(--shadow-md);
  z-index: 1;
  visibility: hidden;
  opacity: 0;
  transform: translateY(-1em);
}
.f-header__nav::before { /* top header bg + border */
  content: "";
  display: block;
  position: sticky;
  top: 0;
  height: var(--f-header-height);
  background-color: inherit;
  border-bottom: 1px solid var(--color-contrast-lower);
}

.f-header__nav--is-visible {
  visibility: visible;
  opacity: 1;
  transform: translateY(0);
  transition: visibility 0s, opacity 0.3s, transform 0.3s;
}

.f-header__nav-logo-wrapper {
  display: none; /* hide logo nav on small devices */
}

.f-header__item {
  flex-shrink: 0;
  border-bottom: 1px solid var(--color-contrast-lower);
}

.f-header__dropdown-icon {
  --size: 16px;
  flex-shrink: 0;
  margin: 0 10px 0 auto;
  display: none; /* hide on mobile if link */
}
.f-header__dropdown-control .f-header__dropdown-icon {
  display: block;
}

.f-header__link,
.f-header__dropdown-control,
.f-header__dropdown-link,
.f-header__btn,
.f-header__form-control {
  font-size: var(--text-md);
}

.f-header__link,
.f-header__dropdown-control,
.f-header__dropdown-link {
  display: flex;
  align-items: center;
  color: var(--color-contrast-high);
  text-decoration: none;
  padding: var(--space-xs) 0;
}
.f-header__link:hover, .f-header__link[aria-current=page],
.f-header__dropdown-control:hover,
.f-header__dropdown-control[aria-current=page],
.f-header__dropdown-link:hover,
.f-header__dropdown-link[aria-current=page] {
  color: var(--color-primary);
}

.f-header__btn,
.f-header__form-control {
  width: 100%;
  margin: var(--space-xs) 0;
}

.f-header__dropdown-control {
  width: 100%;
}

.f-header__dropdown { /* sub navigation */
  padding-left: var(--space-md); /* offset sub nav */
}

.f-header__dropdown-control + .f-header__dropdown {
  display: none;
}
.f-header__dropdown-control[aria-expanded=true] + .f-header__dropdown {
  display: block;
}

@media (min-width: 64rem) {
  .f-header::before {
    content: "desktop";
  }
  .f-header__mobile-content {
    display: none; /* hide logo + menu (mobile content) */
  }
  .f-header__nav {
    /* reset */
    position: static;
    padding: 0;
    background-color: transparent;
    box-shadow: none;
    visibility: visible;
    opacity: 1;
    transform: translateY(0);
    transition: none;
    max-height: none;
    overflow: visible;
    overscroll-behavior: auto;
    height: var(--f-header-height);
  }
  .f-header__nav::before { /* reset */
    display: none;
  }
  .f-header__nav-logo-wrapper {
    display: flex;
  }
  .f-header__nav-grid,
  .f-header__list {
    display: flex;
    align-items: center;
  }
  .f-header__nav-grid {
    height: 100%;
  }
  .f-header__item {
    position: relative;
    border-bottom: none;
    margin-right: var(--space-xs); /* margin between nav items */
  }
  .f-header__item:last-child {
    margin-right: 0;
  }
  .f-header__dropdown-icon {
    --size: 12px;
    display: block;
    margin: 0 0 0 var(--space-xxxxs);
  }
  .f-header__link,
  .f-header__dropdown-control,
  .f-header__dropdown-link,
  .f-header__btn,
  .f-header__form-control {
    font-size: 1.125rem;
  }
  .f-header__link {
    padding: var(--space-xxxs) var(--space-xxs);
  }
  .f-header__link--icon span {
    display: none; /* hide icon label */
  }
  .f-header__btn,
  .f-header__form-control {
    margin: 0; /* reset */
  }
  .f-header__dropdown {
    position: absolute;
    top: 100%;
    width: 220px;
    left: calc(50% - 110px);
    padding: var(--space-xxxs) 0;
    background-color: var(--color-bg-light);
    border-radius: var(--radius-md);
    box-shadow: var(--inner-glow), var(--shadow-md);
    z-index: var(--z-index-popover, 5);
    /* hide */
    pointer-events: none;
    visibility: hidden;
    opacity: 0;
    transition: visibility 0.2s 0.2s, opacity 0.2s 0s;
  }
  .f-header__dropdown-control + .f-header__dropdown {
    display: block; /* reset style */
  }
  .f-header__item:hover .f-header__dropdown, .f-header__dropdown-control[aria-expanded=true] + .f-header__dropdown {
    pointer-events: auto;
    visibility: visible;
    opacity: 1;
    transition: visibility 0.2s 0s, opacity 0.2s 0s;
  }
  .f-header__dropdown-link {
    color: var(--color-contrast-high);
    padding: var(--space-xs) var(--space-sm);
    transition: 0.2s;
  }
  .f-header__dropdown-link:hover {
    background-color: hsla(var(--color-contrast-higher-h), var(--color-contrast-higher-s), var(--color-contrast-higher-l), 0.075);
    color: var(--color-contrast-higher);
  }
}
/* -------------------------------- 

File#: _2_image-zoom
Title: Image Zoom
Descr: A lightbox plugin to zoom on an image on click
Usage: codyhouse.co/license

-------------------------------- */
.image-zoom__preview {
  display: block;
  width: 100%;
}

.image-zoom {
  position: relative;
}

.image-zoom__preview {
  cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 48 48'%3E%3Ctitle%3EArtboard 1icon-1%3C/title%3E%3Cg opacity='0.9'%3E%3Ccircle cx='24' cy='24' r='24'/%3E%3C/g%3E%3Cpolygon points='34 23 25 23 25 14 23 14 23 23 14 23 14 25 23 25 23 34 25 34 25 25 34 25 34 23' fill='%23fff'/%3E%3C/svg%3E") 24 24, zoom-in;
  cursor: -webkit-image-set(url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsSAAALEgHS3X78AAACGklEQVRogeWaO27CQBCG/9meCxDqHAEOQHoEfbgBPRI1Unpu4PSg9PgA+AZJTbgAB5horbGDn/jtXfgkROHX/+9jdj1jYmbUhYjGACYA9P8IwDDjlhcAZwAegBMze7WfXdWAiF4AeAMwqPj8K4AjgH1VM6UNiPCVtHaTaAO7skYKGyCiFwAbANOGhcdxAWyZ+beQriIGiEgPk48aQ6UsemitmflY2wAR6VZfdiQ8jsPM27wTcg0QkW71ecsi73Fg5nXWOSrrgCHiNXPRkkqqARk2JogPmIumBAkDMmH7GvN5LEVbhMgckFD51WG0KYuOTrPbEBvvgY3B4iHaIkMpNCArbNuLVBNMRWvUgGwPbGEVMSCOmt7bgJlf9a+FRhkHvRD0wKKFh7TN4tZAIjxZgK9ZSVeYHHmyGGjtSt6kbGWi2pi8HeL3wMhiAyOV8wJuA8PM7bQtEIDvKlqbXqCI6KfKdc/bA0UIeqlq6xbB+h5Qku6zlYuSXKWtnJWk9GzF0wZOFhs4KUmmXg0QU5ar1h5Eobs5SAPxNQcG9hYa8DWHeSEi+rRoa+0x8ztiC9muPz2lCbWGBmQyuxaId2+rOI+VWpQDmbl4A1jHS0+JzZyUdRwDxTtpJafMCo1BBQ7kVWkyt9NywaFVWcWoVmLCv4k+h5OTJx6PUGYt9EYmN5p1tE64EioL7c+e51ODxIW2fuyRepO+PrcB8AcU++0TpkKrvQAAAABJRU5ErkJggg==") 1x, url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAACXBIWXMAABYlAAAWJQFJUiTwAAAEqUlEQVR4nO2dS07cQBCGq0bZkgMA64gcIMM6UfYI9sABEGtAWUcha8QBBvYzYo+SNZMDhGQ9zAHiA1TUQ9nyYzxut9vdbbs+CY2QwI//n+qHu12FRAQhgohjAHgPAG8BYMyXONa81Hnq8wUAFkQ0r/gfLwRjAAu+zyLrCl2XOf88hWKIVwNY9CMA+AwAW45PHwHAIwBMfZrh3ABEVE3KKQu/7fTk5SyVEQAwIaJ/Lk/szABE3AGAcwA4dHJCc2YAcENELy5O1roBHRI+jxMjWjUAEc+5uXHdvtsi4mbppq0TtGIAd67fA2rjm6L6iIs2OmvrBiDiFwA4sXrQcLgjoq82r8aaAYioJk3XALBn5YDh8gwAl0T028YVjmwcBBHVOP5+AOID3+M933NjGhuAiKqTve1wR2uCutdbRDxqeqBGTRAiXndweGmbGRFdmh7TOAJE/IRD1sIIIwNE/ALGJtQ2QMQvxciEWgZwhyvil3NYt2PW7oR52HVr9XL7yxkRPWrpqmMAT7LuBzbUbIJ6hnSsM1nTNeBhIJMsmzwT0UHV8Sr7AH62I+LXZ4+128hGA/ipZl8frLnghDUsZWMThIg/e/RI2RdLIvpYdu7SCODFFBG/Odus5VrWRgAvIz7IqMcaalR0sG55sywCzkV8q2yxpgUKEcDf/h9dvtuA+ZSPgnURUNpeCY0paJuJAN409asLOhPRu/TviPjX39XU4kN681c+Ak7Dve7ekNE4b0DjJTahkozGiQE8Y5Nxf/tsp2fH6QiQb787Eq3TBljZZiFokWi9MoBDQiZe7tiKm6E4AvYHcNOhsdI8NqCtV4KEcjIRIAa459WAqgUDoT2U9iN+FVTww+6I38MV/LAzkvbfK2Mr7wcI5kgE+EUiwDdigGcQAP64vIT8SlZouF5ZkwjwjBjgGTHAM877AFt0eFdEBokAz4gBnhmlEtwJ7plLBHhGIsAvqwhwkhtNWMuLMmAh2nhjMQo1o+wQUNrHnbCY4J6V5mKAPzIGPA1QAN+sNF8ZwP1ANGQ1HBPFfW96IqaV3UOwQqJ12oCpaOuMROvEAA6JZa9vOwyW6aF//lmQREH7ZDTOGzDp0Y2GSkbjN+lf1PuriDjrQl64jq6AzfIFIiRVgVuqUxXwH8z6ef9emdXJlnIjEzOrRKxpgbUGsFPSIdtjUlYKRVKWtY9ZyjLmonO3Gx4bNdxoAM/Y7vqtT6vcVS14SeLW9rCTuJW5lFFRLSLWrBItAzgHsnGViAGiXeRHe2MWZwO/GrqyGlzpZk6HuntDiWgqs+SNzFgjbWpvTeSCNWJCEaNiPkZ7Q8WEAsaVlIw354oJCY3KWDUuZcg1U741Okh3uarb5udpvD2dL+BsYPOEiOvENF7CtfJ+AA+7jrnQZd955vowVrbxWHtBQ008eOrd52dH6tnOga1KqiAFnbXpTkHnzMGlpHklUtS/nO4X9c+cqDtGOBE+xpkByQlfaxSccv7kUPqIJe9Ym+T37bSNcwPScGd9xLmUXfcTEe9Snvp8TcurAWnYjH1OodZWGrU5/zyF8m5cMAbkYUN2VWrHlCG6xsTiqk/Vli+CfBkRAP4DaXHfN1Q11JEAAAAASUVORK5CYII=") 2x) 24 24, zoom-in;
}

.image-zoom__lightbox { /* modal element for the zoomed image - created in js */
  visibility: hidden;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: auto;
  z-index: var(--z-index-overlay, 15);
  overflow-x: hidden;
  cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 48 48'%3E%3Ctitle%3EArtboard 1icon-2%3C/title%3E%3Cg opacity='0.9'%3E%3Ccircle cx='24' cy='24' r='24'/%3E%3C/g%3E%3Crect x='23' y='14' width='2' height='20' transform='translate(48) rotate(90)' fill='%23fff'/%3E%3C/svg%3E") 24 24, zoom-out;
  cursor: -webkit-image-set(url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsSAAALEgHS3X78AAACEklEQVRoge2ay23CQBCG/7FypYGEcyqIoAByR1AAHXBH4oyUOx24AFDuuACsNJCcCQ1QwERrjQl+4ifeIfkuHPDj/727s+MZEzOjLkQ0ADAEYH77AB4zLnkEcADgA9gzs1/73lUNiOgpgFcAvYr3PwHYAdhUNVPagAify9NuEmNgXdZIYQNE9ARgCWDUsPA4HoAVM38X0lXEABGZafJWY6qUxUytBTPvahsgIvPUZzcSHsdl5lXeAbkGiMg89UnLIq+xZeZF1jFO1h+WiDdMREsqqQZk2tggPmQimhIkDMiC7WrO5zETbREia0BC5fsNo01ZTHQaX4bY+AgsLRYP0RaZSmcDssO2vUk1wUi0Rg1IeqCFecSAOGo6t2mTQTgK4QhMFYkPCTSHBhLhSQGBZkeGwubIk0XPaHfkTUorQ0fZ4o0TjEDfLk2l6BOAT0WCE2Sm01p4qKqTmZ+b9EhEX1XOUz8C/2ugaxwp92nl6EitUisHR0p6WvGNgb1iA/vgpZ6IPhRmpCdmfgmj0NUapIUEmkMDG4UGAs2BAanJa1rMfthHuNzI1t3pKc1Z69mAOPIUiPcuuzj3VVqUPzJr8RawiLeeEsmctHVcC8W7aS2nzA6NRQ0O5HVpMtNpOWHbqqxiVGsx4ddEl9PJzROPe2izFnojkwuNb7RPeBIqC+Vnf+dTg8SJWj/2SL1IV5/bAPgBdRHiSVcA3vQAAAAASUVORK5CYII=") 1x, url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAACXBIWXMAABYlAAAWJQFJUiTwAAAEmElEQVR4nO2dvU7cQBDHZ05pyQMAdUL65KgTpUfQAw+AqAGljkJqxAMc9HeiR0nNJX1IargHyD3AROvMWbbvfF6v98v2/KQTBeC1//+b/bDXM0hEECOIOASANwDwEgCGfIpDzVOdZn4+A8ATEU0r/icI0RjAgu+yyLpC12XKn4dYDAlqAIt+AAAfAWDDc/NzALgHgHFIM7wbgIiqSzlm4Te9Nl7OTBkBACMi+uuzYW8GIOIWAJwCwL6XBs2ZAMAVET37aMy5AS0SvogXI5wagIin3N347t9tMedu6cpVA04M4MH1a0R9fFPUGHHmYrC2bgAifgKAI6sHjYcbIvps82ysGYCIatF0CQA7Vg4YL48AcE5Ev2yc4cDGQRBRzeNveyA+8DXe8jU3prEBiKgG2esWD7QmqGu9RsSDpgdq1AUh4mULp5e2mRDRuekxjSNAxE/ZZy2MMDJAxF/C2ITaBoj4pRiZUMsAHnBF/HL26w7M2oMwT7uurZ5udzkhonstXXUM4EXWbc+mmk1Q95AOdRZrugbc9WSRZZNHItqrOl7lGMD3dkT8+uywdmtZawDf1ezqjTUfHLGGpaztghDxe4duKYdiRkTvy9oujQB+mCLiN2eTtVzJygjgx4h3MuuxhpoV7a16vFkWAacivlU2WNMlliKAv/3f2ny1EfOhGAWrIqC0vxIas6RtLgJ409QP0dkp77Kbv4oRcNyd64yWnMZFAxo/YhMqyWmcGsArNpn3u2czuzrORoB8+/2Rap01wMo2C0GLVOvEAA4JWXj5Y2PRDS0iYLcHFx0bieYLA1y9EiSUk2ieLMQQ8bcI5R8iej2oemAguENpP+BXQYUwbA/4PVwhDFsDGYCDMrTyfoBgDgKAzIACIhEQGDEgMC98N09Er2ITIQsi/vHZnkRAYMSAwIgBgZFpaGAkAgIjBgRmkElwJ/hnKhEQGImAsCQR4CU3mrCSZ2XAk2gTjCd5KB+Q5KE8Ny/jgH8SzcWAcOQMeOihAKFJNE/fkEHEn7I/1BtzInoLhVsRWtk9BCukWmcNGIu23ki1Tg3grLCzTl92HMyyGXiL94IkCtyT01heU/VP+Wuq/ItJ9zUIxqRYIEJSFfilOlUB/4FEgX0mdbKlXHGKFcEOc9Z0iZUGsFMjEd8ao7JSKJKyzD1mKcuYs9Zdbnys1XCtAbxiu+m2Pk65qao7I4lb3WEncStzLrOiWsxZs0q0DOAcyMZVInqIdpEf7Y1ZnA38ou/KanChmzkd6u4NJaKxrJLXMmGNtKm9NZEL1ogJyxgV8zHaGyomLGFcScl4c66YkNKojFXjUoZcM+VLo4O0l4u6fX6RxtvT+QROerZOmHOdmMaPcK28H8DTrkMudNl1Hrk+jJVtPNZe0FALD156d/nekbq3s2erkipIQWdt2lPQOXdwKWleiRT1L6f9Rf1zDbXHCC/CL/BmQNrg/81fx5w/OZYxYsY71kbFfTuu8W5AFh6sDziXsu9xYs67lMcuBlddghqQhc3Y5SSCrhIJTvnzEFL0LNEYUIQN2VapHTOG6BqzEFf9VH35UyyC5wCAfxBt4NqKekAOAAAAAElFTkSuQmCC") 2x) 24 24, zoom-out;
}
.image-zoom__lightbox img {
  display: block;
  position: relative;
  z-index: 1;
  width: 100%;
  transform-origin: top left;
  pointer-events: none;
}
.image-zoom__lightbox::before { /* lightbox background */
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  background-color: var(--color-bg);
  opacity: 0;
}

.image-zoom__lightbox--is-visible {
  visibility: visible;
}
.image-zoom__lightbox--is-visible img {
  transition: transform 0.3s;
}
.image-zoom__lightbox--is-visible::before {
  transition: opacity 0.3s;
}

.image-zoom__lightbox--animate-bg::before { /* animate lightbox background when lightbox is visible */
  opacity: 1;
}

.image-zoom__lightbox--no-transition { /* remove lightbox transitions */ }
.image-zoom__lightbox--no-transition img, .image-zoom__lightbox--no-transition::before {
  transition: none;
}

/* keyboard accessibility - use keyboard to toggle lightbox */
.image-zoom__input { /* never visible - created in js */
  position: absolute;
  top: 0;
  left: 0;
  pointer-events: none;
  opacity: 0;
}

.image-zoom__input:focus ~ .image-zoom__preview {
  box-shadow: 0 0 0 2px var(--color-bg), 0 0 0 5px hsla(var(--color-primary-h), var(--color-primary-s), var(--color-primary-l), 0.25);
}

/* -------------------------------- 

File#: _2_modal-video
Title: Modal Video
Descr: A modal window used to display a responsive video
Usage: codyhouse.co/license

-------------------------------- */
/* -------------------------------- 

File#: _3_intro-v3
Title: Intro v3
Descr: Intro section including the main header and a feature block
Usage: codyhouse.co/license

-------------------------------- */
/* -------------------------------- 

File#: _3_light-dark-switch
Title: Light/Dark Switch
Descr: Color theme switcher
Usage: codyhouse.co/license

-------------------------------- */
.ld-switch-btn {
  position: relative;
  width: 24px;
  height: 24px;
  overflow: hidden;
  display: inline-block;
  transition: opacity 0.2s, color 0.2s;
}
.ld-switch-btn:hover {
  cursor: pointer;
  opacity: 0.8;
}
.ld-switch-btn:focus {
  outline: none;
  color: var(--color-primary);
}

.ld-switch-btn.popover-control--active {
  /* class added to the control button when the dropdown is visible */
  color: var(--color-primary);
}

.ld-switch-btn__icon-wrapper {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  opacity: 0;
  transform: translateY(100%) rotate(35deg) scale(0.5);
}

.ld-switch-btn__icon-wrapper--in {
  opacity: 1;
  transform: translateY(0) rotate(0) scale(1);
}

.ld-switch-btn__icon-wrapper--out {
  opacity: 0;
  transform: translateY(-100%) rotate(-35deg) scale(0.5);
}

.ld-switch-btn__icon-wrapper--in,
.ld-switch-btn__icon-wrapper--out {
  transition: transform 0.3s var(--ease-in-out), opacity 0.3s;
}

.ld-switch-btn__icon {
  margin: auto;
  --size: 20px; /* icon size */
}

.popover.ld-switch-popover {
  --popover-width: 250px;
}

.ld-switch-popover__option {
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  transition: opacity 0.2s;
}
.ld-switch-popover__option:hover {
  cursor: pointer;
  opacity: 0.85;
}
.ld-switch-popover__option:focus {
  outline: none;
}
.ld-switch-popover__option:focus figure {
  box-shadow: 0 0 0 1px var(--color-bg-light), 0 0 0 3px var(--color-contrast-higher);
}
.ld-switch-popover__option[aria-selected=true] {
  color: var(--color-primary);
}
.ld-switch-popover__option[aria-selected=true] figure {
  box-shadow: 0 0 0 1px var(--color-bg-light), 0 0 0 3px currentColor;
}

:root {
  --header-height: 120px;
}