/* Start **************************************************/
:root {
  --color-white: white;
  --color-black: rgb(9, 5, 18);
  --color-grey-95: #1f1f1f;
  --color-grey-90: #383838;
  --color-grey-80: #4a4a4a;
  --color-grey-70: #666666;
  --color-grey-60: #747474;
  --color-grey-50: #8b8b8b;
  --color-grey-40: #a8a8a8;
  --color-grey-30: #bababa;
  --color-grey-20: #cbcbcb;
  --color-grey-10: #e8e8e8;
  --color-grey-5: #f6f6f6;
  --color-grey-1: #fdfdfd;
  --color-red: #d22020;
  --color-red-50: #d22020;
  --color-orange: #fe9001;
  --color-orange-70: #f56d00;
  --color-orange-60: #ff7900;
  --color-orange-50: #fe9001;
  --color-orange-40: #f5a623;
  --color-yellow: #f5c402;
  --color-yellow-60: #e2b500;
  --color-yellow-50: #f5c402;
  --color-yellow-40: #ffd600;
  --color-yellow-10: #fbfcc7;
  --color-green: #37ab2f;
  --color-green-80: #095b09;
  --color-green-70: #24711f;
  --color-green-60: #2f9027;
  --color-green-50: #37ab2f;
  --color-green-40: #53cb4b;
  --color-bright-green: #2dc922;
  --color-blue: #417193;
  --color-blue-90: #002f50;
  --color-blue-70: #365f7a;
  --color-blue-50: #417193;
  --color-blue-40: #678da8;
  --color-blue-30: #85aac1;
  --color-blue-10: #cfdce4;
  --color-bright-blue: #1e8aff;
  --color-bright-blue-50: #1e8aff;
  --color-purple: #895a93;
  --color-purple-60: #72447c;
  --color-purple-50: #895a93;
  --color-shade: #001122;
  --color-key: var(--color-green);
  --color-key-70: var(--color-green-70);
  --color-root: var(--color-white);
  --color-contrast: var(--color-black);
  --color-text: var(--color-grey-90);
  --color-contrast-95: var(--color-grey-95);
  --color-contrast-90: var(--color-grey-90);
  --color-contrast-80: var(--color-grey-80);
  --color-contrast-70: var(--color-grey-70);
  --color-contrast-60: var(--color-grey-60);
  --color-contrast-50: var(--color-grey-50);
  --color-contrast-40: var(--color-grey-40);
  --color-contrast-30: var(--color-grey-30);
  --color-contrast-20: var(--color-grey-20);
  --color-contrast-10: var(--color-grey-10);
  --color-contrast-5: var(--color-grey-5);
  --color-contrast-1: var(--color-grey-1);
  --color-focus: rgba(30, 138, 255, 0.6);
  --color-focus-alpha-0: rgba(30, 138, 255, 0);
}

/* Root ***************************************************/
:root {
  --font-base: 'Proxima Nova Soft', proxima, -apple-system, BlinkMacSystemFont,
    'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;
  --font-body: var(--font-base);
  font-family: var(--font-body);
  font-weight: 400;
  font-size: 16px;
  line-height: 1.25;
  box-sizing: border-box;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  -webkit-tap-highlight-color: transparent;
  background-color: var(--color-root);
  color: var(--color-text);
}

*,
:before,
:after {
  box-sizing: inherit;
  font-weight: inherit;
  outline-color: var(--color-focus-alpha-0);
}

/* sneakily override global-css.js */
html body {
  background-color: #fff;
  background-color: var(--color-root);
  line-height: 1.25;
}

:focus-visible {
  outline: 3px solid var(--color-focus);
}

.link,
a {
  cursor: pointer;
  background-color: transparent;
  color: var(--color-key);
  text-decoration: none;
  transition: color 0.1s, background-color 0.1s, outline-color 0.1s;
  outline-offset: 3px;
}
.link._unlink,
a._unlink,
.link._unlink:focus,
.link._unlink:hover {
  color: inherit;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-weight: 700;
  margin: 0;
}

.visuallyhidden {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
}

button,
.button {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-color: #dfe1e2;
  background-color: var(--color-contrast-30);
  border: 1px solid transparent;
  color: inherit;
  outline-offset: 0;
  cursor: pointer;
  display: inline-block;
  line-height: 1.25;
  text-align: center;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  transition: border-color 0.1s, background-color 0.1s, box-shadow 0.1s,
    color 0.1s, outline-color 0.1s;
}
button:focus,
.button:focus,
button:hover,
.button:hover {
  outline: none;
  text-decoration: none;
}
button:focus-visible,
.button:focus-visible {
  outline: 3px solid var(--color-focus);
}
button[disabled],
[disabled].button {
  pointer-events: none;
}
button[disabled] > *,
[disabled].button > * {
  opacity: 0.6;
}

.layout {
  width: 93.8666666667%;
  max-width: 58.75rem;
  margin: 0 auto;
}

main {
  overflow: hidden;
  background-color: #fff;
  color: #090512;
  background-color: var(--color-root);
  color: var(--color-text);
}

svg {
  display: block;
  margin: 0 auto;
}

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

[hidden] {
  display: none;
}

.block {
  border-radius: 1.25rem;
  position: relative;
}
.block + .block {
  margin-top: 1.875rem;
}
.block .block-arrow {
  position: absolute;
  right: 1.25rem;
  bottom: 1.25rem;
  transform: scale(1);
  transition: transform 0.15s;
  transform-origin: 100% 50%;
}
.block .block-arrow path {
  stroke: currentColor;
}

.block.block-row {
  display: grid;
  grid-gap: 1.875rem;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 360px), 1fr));
}
.block.block-row .block {
  margin: 0;
  display: flex;
  flex-direction: column;
}

a.block {
  display: block;
  box-shadow: 0 0 0 0 rgba(0, 17, 34, 0);
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  transform: scale(1);
  transition: transform 0.15s, box-shadow 0.15s;
}
a.block:focus,
a.block:hover {
  z-index: 1;
  transform: scale(1.02);
  box-shadow: 0 12px 28px rgba(0, 17, 34, 0.2);
}
a.block:focus .block-arrow,
a.block:hover .block-arrow {
  transform: scale(1.5);
}

.section-video {
  position: relative;
  z-index: 1;
}
.section-video .section-video-poster {
  background-color: #000;
}
.section-video._expanded:before {
  opacity: 0;
}

.section-video-poster {
  position: relative;
  min-height: 100%;
}
.section-video-poster:before {
  content: '';
  display: block;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1;
  background-image: radial-gradient(
    120% 120% at 50% 70%,
    #0350 20%,
    #0356 100%
  );
}
.section-video-poster img {
  display: block;
}

.section-video-player {
  border-radius: 0.625rem;
  overflow: hidden;
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  max-width: 1280px;
  margin: 0 auto;
}
.section-video-player:after {
  content: '';
  display: block;
  width: 100%;
  min-height: 9.625rem;
  padding-bottom: 34.0425531915%;
  transition: padding 0.4s cubic-bezier(0.25, 0.83, 0.1, 1);
}
@media (prefers-reduced-motion) {
  .section-video-player:after {
    transition: none;
  }
}
.section-video-player iframe,
.section-video-player .section-video-poster {
  display: block;
  position: absolute;
  z-index: 0;
  width: 100%;
}
.section-video-player .section-video-poster {
  transition: opacity 0.8s, visibility 0s 0.8s;
}
._expanded .section-video-player button {
  -webkit-animation: none;
  animation: none;
}
._open .section-video-player button {
  display: none;
}
._playing:not(._expanded) .section-video-player button {
  pointer-events: none;
}
._playing:not(._expanded) .section-video-player button svg {
  display: none;
}
._playing:not(._expanded) .section-video-player button .loader {
  display: block;
}
._playing._expanded .section-video-player button {
  display: none;
}
._expanded .section-video-player iframe {
  opacity: 1;
}
._expanded .section-video-player .section-video-poster {
  opacity: 0;
  visibility: hidden;
}
._expanded .section-video-player:after {
  padding-bottom: 56.25%;
}
._open .section-video-player:after {
  transition: none;
}

.section-video-button {
  position: absolute;
  z-index: 1;
  top: 50%;
  left: 50%;
  transform: translate3d(-50%, -50%, 0);
  transform-style: preserve-3d;
  perspective: 1000px;
}

.section-video-player button {
  display: block;
  background-color: var(--color-white);
  width: 4.5rem;
  height: 4.5rem;
  padding: 0;
  border: none;
  border-radius: 100%;
  box-shadow: 0 4px 0 rgba(0, 17, 34, 0.2);
  transform: scale(1);
  will-change: transform;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  -webkit-animation: breathe ease-in-out alternate infinite 1.2s;
  animation: breathe ease-in-out alternate infinite 1.2s;
}
@media (prefers-reduced-motion) {
  .section-video-player button {
    -webkit-animation: none;
    animation: none;
  }
}
.section-video-player button .loader {
  display: none;
  margin: auto;
  width: 2.5rem;
  height: 2.5rem;
  border: 5px solid rgba(65, 113, 147, 0.3);
  border-top-color: var(--color-blue);
  border-radius: 100%;
  -webkit-animation: spin linear infinite 0.4s;
  animation: spin linear infinite 0.4s;
}
@media (prefers-reduced-motion) {
  .section-video-player button .loader {
    -webkit-animation-timing-function: steps(4);
    animation-timing-function: steps(4);
    -webkit-animation-duration: 3s;
    animation-duration: 3s;
  }
}
.section-video-player button svg {
  width: 100%;
  height: 100%;
}
.section-video-player button svg path {
  fill: var(--color-blue);
  transition: fill 0.2s;
}
.section-video-player button:focus,
.section-video-player button:hover {
  background-color: var(--color-grey-10);
}
.section-video-player button:focus svg path,
.section-video-player button:hover svg path {
  fill: var(--color-blue-70);
}

@-webkit-keyframes spin {
  0% {
    transform: rotateZ(0deg);
  }
  100% {
    transform: rotateZ(360deg);
  }
}

@keyframes spin {
  0% {
    transform: rotateZ(0deg);
  }
  100% {
    transform: rotateZ(360deg);
  }
}
@-webkit-keyframes breathe {
  0% {
    transform: scale(1);
    box-shadow: 0 4px 0 rgba(0, 17, 34, 0.2);
  }
  100% {
    transform: scale(1.2222222222);
    box-shadow: 0 6px 20px -2px rgba(0, 17, 34, 0.2);
  }
}
@keyframes breathe {
  0% {
    transform: scale(1);
    box-shadow: 0 4px 0 rgba(0, 17, 34, 0.2);
  }
  100% {
    transform: scale(1.2222222222);
    box-shadow: 0 6px 20px -2px rgba(0, 17, 34, 0.2);
  }
}
/* Company ************************************************/
:root {
  --color-root: var(--color-green);
  --color-text: var(--color-white);
  --color-key: var(--color-white);
  --color-key-70: var(--color-green-70);
  --color-focus: rgba(255, 255, 255, 0.6);
  --color-focus-alpha-0: rgba(255, 255, 255, 0);
}

main {
  position: relative;
  z-index: 1;
  text-align: center;
  line-height: 1.25;
  padding-bottom: 9rem;
}
main + #cm-landing-footer {
  padding-top: 0;
  overflow: visible;
  position: relative;
  z-index: 2;
}

.section.section {
  color: inherit;
}

.block-title {
  font-size: 1.875em;
  line-height: 1.0666666667;
  font-size: clamp(1.625em, 4.0625vw, 2em);
}

.bit-title {
  font-size: 1.5em;
  line-height: 1.1666666667;
  font-size: clamp(1.375em, 3.4375vw, 1.625em);
}

.block-intro p,
.block-intro ul,
.block-subtitle {
  font-size: 1.25em;
  line-height: 1.3;
  font-size: clamp(1.125em, 2.8125vw, 1.5em);
}

.section-hero {
  position: relative;
  z-index: 0;
  text-align: center;
}
.section-hero .layout {
  padding-top: 1.25rem;
  background-image: radial-gradient(
    50% 70% at 50% 70%,
    #289320 40%,
    #28932000 100%
  );
}
@media (min-width: 768px) {
  .section-hero .layout {
    padding-top: 1.875rem;
  }
}

.hero-logo svg {
  overflow: visible;
}
.hero-logo circle {
  fill: var(--color-bright-green);
  filter: drop-shadow(1px 2px 0 #0122);
}
.hero-logo path[fill='#4A4A4A'] {
  fill: var(--color-text);
}

.hero-strap {
  font-size: clamp(1.75em, 7vw, 2.75em);
  line-height: 1.1;
  font-weight: 700;
  margin: 1rem auto 0;
  color: var(--color-text);
  z-index: 2;
  position: relative;
  max-width: 20ch;
}
.hero-strap em {
  font-style: inherit;
}

.hero-image {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: -1.25rem;
}
.hero-image picture,
.hero-image img {
  flex: 1 0 auto;
  display: block;
  width: 241.328125%;
  max-width: 75rem;
}

.section-story h2 {
  color: var(--color-green);
}
.section-story h3 {
  color: var(--color-green);
}
.section-story .bit-subtitle {
  font-weight: bold;
}

.blocks {
  margin-top: 1.25rem;
}

.block {
  background-color: var(--color-white);
  color: var(--color-grey-80);
  box-shadow: 0 0 0 0.5px #0123, 0 4px 12px #0121;
  padding: 1.875rem 1.25rem;
}
@media (min-width: 768px) {
  .block {
    padding: 3.75rem 3.75rem;
  }
}

@media (max-width: 767px) {
  .block + .block {
    margin-top: 1.25rem;
  }
}

.block-title {
  color: var(--color-green);
  margin: 0 auto;
  max-width: 35ch;
}

.block-subtitle {
  color: var(--color-grey-70);
  font-weight: 700;
  max-width: 48ch;
  margin: 0 auto;
}
.block-title + .block-subtitle {
  margin-top: 1em;
}

.block-intro p,
.block-intro ul {
  line-height: 1.5555555556;
  font-weight: 700;
  color: var(--color-grey-80);
  text-align: left;
}
.block-intro p {
  margin: 0 0.5555555556em;
}
.block-intro ul {
  margin: 0;
  padding: 0;
  padding-left: 1em;
}
.block-intro li + li {
  padding-top: 1.25rem;
}
.block-intro li::marker {
  color: var(--color-green);
}
@media (min-width: 768px) {
  .block-intro ul {
    margin: 0.5rem 0;
  }
}

.bits {
  display: grid;
  grid-gap: 1.25rem;
  row-gap: 2.5rem;
  align-items: flex-start;
  justify-content: center;
}
@media (min-width: 768px) {
  .bits {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (min-width: 1024px) {
  .bits {
    row-gap: 4rem;
    grid-template-columns: repeat(3, 1fr);
  }
}
.block-title ~ .bits {
  margin-top: 2.5rem;
}
@media (min-width: 1024px) {
  .block-title ~ .bits {
    margin-top: 4.5rem;
  }
}

.bit {
  display: flex;
  align-items: flex-start;
  max-width: 30rem;
}
@media (min-width: 1024px) {
  .bit {
    display: block;
  }
}

.bit-subtitle {
  margin: 0.75em auto;
}
.bit-subtitle ~ p {
  margin: 0;
}

.bit-copy {
  text-align: left;
}
.bit-copy :last-child {
  margin-bottom: 0;
}
.bit-copy a {
  color: var(--color-grey-70);
  text-decoration: underline;
}
.bit-copy a:focus,
.bit-copy a:hover {
  color: var(--color-green);
}

.bit-image {
  position: relative;
  flex: none;
  width: 30.7692307692%;
  max-width: 8rem;
  margin-right: 1.25rem;
  margin-left: -0.25rem;
}
.bit-image:before {
  content: '';
  display: block;
  padding-bottom: 100%;
}
.bit-image img {
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
}

@media (min-width: 1024px) {
  .bits {
    margin: 0 -0.75rem;
  }

  .bit {
    display: block;
  }

  .bit-copy {
    text-align: center;
  }

  .bit-image {
    width: 100%;
    max-width: 11.25rem;
    margin: 0 auto 1.25rem;
  }
  .bit-image img {
    width: 111.1111111111%;
  }
}
.bit-cta {
  margin-top: 4.5rem;
}
.bit-cta:last-child {
  margin-bottom: 3.5rem;
}
.bit-cta a.button {
  display: inline-flex;
  align-items: center;
  background-color: var(--color-orange);
  color: var(--color-white);
  border-radius: 0.625rem;
  font-size: 1.25em;
  line-height: 1;
  font-weight: 700;
  padding: 0.75rem 1.25rem;
}
.bit-cta a.button:focus-visible,
.bit-cta a.button:hover {
  background-color: var(--color-orange-60);
}
.bit-cta a.button i {
  margin-left: 1em;
}
.bit-cta a.button i svg {
  width: 0.875em;
}
.bit-cta a.button i path {
  stroke: currentColor;
}

@media (min-width: 1024px) {
  .block-data .bits {
    display: flex;
    flex-wrap: wrap;
  }
  .block-data .bits .bit {
    width: 16.75rem;
    width: calc((100% - 2.5rem) / 3);
    flex: none;
  }
}
