:root {
  --shadow--dark: -5px 9px 25px -6px rgba(0, 0, 0, 0.09);
  --shadow--light: -5px 9px 25px -6px rgba(0, 0, 0, 0.04);
}

main {
  position: relative;
  width: 100%;
  background-color: var(--color-secondary);
}

body {
  position: relative;
}

body.loading {
  cursor: progress;
}

html:has([show]),
html:has(.nav__list-wrapper.animate) {
  overflow-y: hidden;
}


/* typography improvements */
html {
  font-feature-settings: 'ss01' 1, 'ss03' 1, 'ss07' 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  -webkit-tap-highlight-color: transparent;
  font-size: 1.058vw;
  overflow-x: hidden;
  width: 100vw;
  background-color: #1b2431;
}

h1,
h2,
h3,
h4,
h5,
h6,
p,
label {
  margin: unset;
  font-weight: unset;
  line-height: unset;
}

address {
  color: var(--color-primary-light);
  font-style: unset;
}

img {
  vertical-align: unset;
}

a:focus-visible,
button:focus-visible,
input[type='radio']:focus-visible+label h3,
input[type='radio']:focus-visible+.btn--filter,
input[type='submit']:focus-visible,
input[type='file']:focus-visible::file-selector-button,
.actions:not([data-form='newsletter'] .actions:focus-within):not(.highlights__list--item .actions:focus-within):not(.slider__heading .actions:focus-within):focus-within {
  outline: 1.5px solid var(--color-brand-light);
  outline-offset: 0.3125rem;
}

input[type='file']:focus-visible {
  outline: unset;
}

a:focus-visible,
input[type='radio']:focus-visible+label h3,
input[type='radio']:focus-visible+.btn--filter,
.btn--faq:focus-visible {
  border-radius: 0.375rem;
}

.anchor.is-article {
  margin-top: -15vh;
  height: calc(100% + 15vh);
}

video {
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: 0;
}

.w-input,
.w-select {
  vertical-align: unset;
}

.w-form {
  margin: unset;
}


/* buttons */
button {
  padding: unset;
  background-color: unset;
  user-select: none;
}

.btn:hover .btn__bg,
input[type='submit']:hover~.btn__bg,
.highlights__list--item .actions:hover .btn__bg,
.slider__heading .actions:hover .btn__bg,
.slider__btn-wrap .actions:hover .btn__bg {
  transform: translateX(-0.71875rem);
  height: var(--spacing-md);
  width: var(--spacing-md);
}

.btn:hover .btn__bg-icon,
input[type='submit']:hover~.btn__icon-wrapper .btn__bg-icon,
.highlights__list--item .actions:hover .btn__bg-icon,
.slider__heading .actions:hover .btn__bg-icon,
.slider__btn-wrap .actions:hover .btn__bg-icon {
  transform: scale(0);
}

input[type='submit']:hover+.btn__icon-wrapper .icon--arrow,
.highlights__list--item .actions:hover .btn__icon-wrapper .icon--arrow,
.slider__heading .actions:hover .btn__icon-wrapper .icon--arrow,
.slider__btn-wrap .actions:hover .btn__icon-wrapper .icon--arrow {
  color: var(--color-primary-light);
  transition: color .58s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.btn--close:hover .btn__bg-border,
.btn--slider:hover .btn__bg-border,
.btn--back:hover .btn__bg-border,
.btn--icon:hover .btn__bg-border,
.btn--play-pause:hover .btn__bg-alt {
  transform: scale(1.05);
}

.btn--back .copy--md-bold {
  white-space: nowrap;
  text-overflow: ellipsis;
  max-width: 83.33vw;
  overflow: hidden;
}

.media:hover+.btn--play .btn__bg-icon {
  transform: scale(1.1);
}

.media:hover+.btn--play .btn__bg-icon {
  transform: scale(1.1);
}

.btn--play.is-case-study {
  margin-left: 1.375rem;
  margin-bottom: 1.375rem;
}

::file-selector-button {
  background-color: var(--color-secondary);
  background-image: url("data:image/svg+xml,%3Csvg width='1' height='2.9375' xmlns='http://www.w3.org/2000/svg' viewBox='0 0.98 13 15.03'%3E%3Cpath d='M13 14.097H0v1.92h13zM.016 6.695 5.889.984h1.239L13 6.695l-1.336 1.32-4.167-4.103v8.334H5.503V3.912L1.335 8.015z' fill='%23222c3a'/%3E%3C/svg%3E");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: 0.6875rem;
  border: 1.5px solid var(--color-primary);
  border-radius: var(--radius-border);
  color: var(--color-primary);
  cursor: pointer;
  font-weight: 620;
  letter-spacing: -0.04em;
  margin-right: var(--spacing-tiny);
  padding: var(--spacing-tiny) var(--spacing-xxs);
  padding-left: var(--spacing-sm);
  pointer-events: all;
  font-family: inherit;
  box-shadow: var(--shadow--light);
}


/* header: opaque, navless, auth */
.navless,
.auth {
  position: absolute;
  transform: translateY(0) !important;
}

@keyframes navMaskExpand {
  from {
    clip-path: inset(0 0 100%);
  }

  to {
    clip-path: inset(0 0 0%);
  }
}

.opaque .is-mask,
.navless .is-mask,
.auth .is-mask {
  animation: navMaskExpand .6s cubic-bezier(0.22, 0.61, 0.36, 1) forwards;
}

.navless .is-mask,
.auth .is-mask {
  background-color: transparent;
}

@keyframes navMaskContract {
  from {
    clip-path: inset(0 0 0%);
  }

  to {
    clip-path: inset(0 0 100%);
  }
}

.is-mask {
  animation: navMaskContract .6s cubic-bezier(0.22, 0.61, 0.36, 1) forwards;
}

.navless .nav__list,
.navless .nav__list::before,
.navless .nav__btn,
.auth .nav__list:not(.is-auth),
.auth .nav__list::before,
.auth .nav__btn,
.nav__list.is-auth {
  position: absolute;
  visibility: hidden;
  opacity: 0;
  transition: opacity .4s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.auth .nav__list.is-auth,
.nav__list,
.nav__list-wrapper.animating .nav__list,
.nav__list-wrapper.animating .nav__list::before,
.nav__list-wrapper.animating .nav__btn {
  position: static;
  visibility: visible;
  opacity: 1;
  transition: opacity .6s cubic-bezier(0.22, 0.61, 0.36, 1) .1s;
}

.is-mask .nav__list::after,
.auth .nav__list::after {
  background-color: var(--color-tp);
}


/* nav items and links */
header nav .copy--sm-bold,
.nav__list--copyright a,
.get-started__link span {
  padding: var(--spacing-tiny) 0;
  position: relative;
}

.auth nav .copy--sm-bold {
  border-radius: var(--radius-border);
}

header .nav__item a::before,
header .nav__item button::before,
footer .nav__item a::before,
.get-started__link span::after,
.article__body a::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: currentColor;
  transform: scaleX(0);
  transform-origin: right;
}

header .nav__item a::before,
header .nav__item button::before {
  height: 2px;
  transition: transform .4s cubic-bezier(.22, .61, .36, 1), background-color .4s cubic-bezier(.22, .61, .36, 1);
}

.opaque .nav__item a::before,
.opaque .nav__item button::before,
.auth .nav__item a::before,
.auth .nav__item button::before {
  background-color: var(--color-primary);
  z-index: 1;
}

footer .nav__item a::before,
.get-started__link span::after {
  height: 2.5px;
  transition: transform .55s cubic-bezier(.22, .61, .36, 1);
}

.get-started__link span::before {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 2.5px;
  background-color: var(--color-tp);
}

.article__body a {
  word-break: break-all;
}

.article__body a::before,
.article__body a::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 2px;
  transition: transform .4s cubic-bezier(.22, .61, .36, 1);
}

.article__body a::before {
  background-color: var(--color-tp);
}

header .nav__item .copy--sm-bold:hover::before,
footer .nav__item a:hover::before,
footer .nav__item a.w--current::before,
.get-started__link:hover span::after,
.get-started__link.w--current span::after,
.article__body a:hover::after {
  transform: scaleX(1);
  transform-origin: left;
}

footer .nav__item a.w--current,
.get-started__link.w--current {
  pointer-events: none;
}


/* dropdowns */
@keyframes dropdownExpand {
  from {
    clip-path: inset(0 0 100% round var(--radius-border));
  }

  to {
    clip-path: inset(0 0 0% round var(--radius-border));
  }
}

.nav__item--dropdown:hover .nav--dropdown,
.nav--dropdown:focus-within {
  animation: dropdownExpand .6s cubic-bezier(0.22, 0.61, 0.36, 1) forwards;
}

@keyframes dropdownContract {
  from {
    clip-path: inset(0 0 0% round var(--radius-border));
  }

  to {
    clip-path: inset(0 0 100% round var(--radius-border));
  }
}

.nav--dropdown {
  animation: dropdownContract .6s cubic-bezier(0.22, 0.61, 0.36, 1) forwards;
}

.nav__item--dropdown:hover .nav--dropdown-wrapper,
.nav--dropdown-wrapper:focus-within {
  opacity: 1;
}

.opaque .nav--dropdown-wrapper {
  filter: drop-shadow(1px 0 var(--color-tp))drop-shadow(-1px 0 var(--color-tp))drop-shadow(0 1px var(--color-tp))drop-shadow(0 -1px var(--color-tp));
}


/* list dividers */
.nav__list::after {
  content: '';
  width: 1.5px;
  background-color: var(--color-tp-light);
  position: relative;
  height: 38.6%;
}

.creds__list--item:not(:last-child)::after {
  content: '';
  width: 1.5px;
  background-color: var(--color-tp-light);
  margin: 0 1rem;
}


/* ellipsis loader */
@keyframes loader {

  0%,
  33.33%,
  100% {
    opacity: .5;
  }

  16.67% {
    opacity: 1;
  }
}

.loader-dot {
  animation: loader 1.5s infinite linear;
}

.loader-dot:nth-child(2) {
  animation-delay: .5s;
}

.loader-dot:nth-child(3) {
  animation-delay: 1s;
}


/* hubspot form fields (raw html) */
.hs-form-required {
  display: none;
}

.hs-form {
  grid-row-gap: var(--spacing-sm);
  flex-flow: column;
  display: flex;
}

[data-form='newsletter'] .hs-form {
  grid-row-gap: 1.25rem;
}

.hs-error-msg {
  position: absolute;
  margin-top: 0.1875rem;
  color: var(--color-error);
  font-size: 0.921875rem;
  font-variation-settings: "opsz" 24, "wght" 500;
  letter-spacing: -.015em;
  background-color: white;
  z-index: 1;
}

.hs-fieldtype-file .hs-error-msg {
  background-color: transparent;
}

[data-form='newsletter'] .hs-error-msg {
  background-color: transparent;
}

.hs_error_rollup {
  display: none !important;
}

.hs-fieldtype-booleancheckbox .hs-error-msg {
  margin: -.1875rem 0 2rem 1.625rem;
}

.hs-fieldtype-booleancheckbox .hs-error-msg::before {
  content: '↑';
  left: -1.4375rem;
  position: absolute;
  font-size: 0.875rem;
  top: 0.046875rem;
}

.form-columns-2 {
  grid-column-gap: var(--spacing-xs);
  grid-row-gap: var(--spacing-xs);
  display: flex;
}

.hs-form-field {
  flex: 1;
  position: relative;
}

.input {
  position: relative;
}

.hs-fieldtype-text .input::before,
.hs-fieldtype-phonenumber .input::before,
.hs-fieldtype-textarea .input::before {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 1.5px;
  background-color: var(--color-tp);
  transition: transform .4s cubic-bezier(.22, .61, .36, 1);
}

.hs-fieldtype-text .input::after,
.hs-fieldtype-phonenumber .input::after,
.hs-fieldtype-textarea .input::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  height: 1.5px;
  width: 100%;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: right;
  transition: transform .4s cubic-bezier(.22, .61, .36, 1);
}

.input:focus-within::after {
  transform: scaleX(1);
  transform-origin: left;
}

input:not([type='submit']):focus-visible,
textarea:focus-visible {
  outline: none;
}

input[type='checkbox']:focus-visible {
  outline: 1.5px solid var(--color-brand-light);
  outline-offset: 0.140625rem;
}

input[type='text'],
input[type='email'],
input[type='tel'] {
  height: var(--height-input);
  padding-top: var(--spacing-xxs);
  padding-right: 0;
  padding-bottom: var(--spacing-xxs);
  font-size: var(--font-copy-sm);
  color: inherit;
  background-color: rgba(0, 0, 0, 0);
  border-style: none;
  margin-bottom: 0;
  padding-left: 0;
  position: relative;
  width: 100%;
}

input[type='tel'] {
  padding-left: 1.3625rem;
}

.hs-phone::before {
  content: '+1';
  position: absolute;
  left: 0;
  bottom: 1.125rem;
  font-size: var(--font-copy-sm);
  opacity: .5;
}

textarea {
  min-height: var(--spacing-xl);
  padding-top: var(--spacing-xxs);
  padding-right: 0;
  padding-bottom: var(--spacing-xxs);
  font-size: var(--font-copy-sm);
  resize: vertical;
  background-color: rgba(0, 0, 0, 0);
  border-style: none;
  margin-bottom: 0;
  padding-left: 0;
  position: relative;
  width: 100%;
}

.hs-subscribe_to_newsletter {
  margin-top: -1.375rem;
}

[data-form='newsletter'] .hs-subscribe_to_newsletter {
  margin-top: .1875rem
}

[data-form='newsletter'] .hs_agree_to_communications {
  margin-top: -.5rem;
}

.hs-form-booleancheckbox-display {
  display: flex;
  gap: .5rem;
  align-items: flex-start;
  font-size: var(--font-copy-sm);
  font-variation-settings: "opsz" 24, "wght" 475;
  letter-spacing: -.026em;
  line-height: 1.2;
}

input[type='checkbox'] {
  appearance: none;
  -webkit-appearance: none;
  width: 1.15625rem;
  height: 1.15625rem;
  margin-top: .046875rem;
  border: 1.5px solid var(--color-primary);
  border-radius: .25rem;
  flex: none;
}

[data-form='newsletter'] input[type='checkbox'] {
  border-color: var(--color-secondary);
}

input[type='checkbox']::before {
  content: '';
  position: absolute;
  width: inherit;
  height: inherit;
  margin-top: inherit;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0.59 0.08 11.77 9.03'%3E%3Cpath d='M4.37 7.027 11.319.084l1.038 1.038L4.37 9.11.588 5.33l1.045-1.04z' fill='%23222C3A'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-size: 72.5%;
  background-position: center;
  opacity: 0;
  transition: opacity .13s cubic-bezier(.22, .61, .36, 1);
  top: 0;
  left: 0;
}

[data-form='newsletter'] input[type='checkbox']::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0.59 0.08 11.77 9.03'%3E%3Cpath d='M4.37 7.027 11.319.084l1.038 1.038L4.37 9.11.588 5.33l1.045-1.04z' fill='%23FFFFFF'/%3E%3C/svg%3E");
}

input[type='checkbox']:checked::before {
  opacity: 1;
}

input[type='file'] {
  border-top-left-radius: var(--radius-border);
  border-top-right-radius: var(--radius-border);
  border-bottom-left-radius: var(--radius-border);
  border-bottom-right-radius: var(--radius-border);
  pointer-events: none;
  color: var(--color-primary-mid);
  font-size: var(--font-copy-xs);
  -webkit-user-select: none;
  -ms-user-select: none;
  user-select: none;
  width: calc(100% + 100px);
  margin: -50px;
  padding: 50px;
  overflow: visible;
}

.actions:not([data-form='newsletter'] .actions) {
  border-top-left-radius: var(--radius-button);
  border-top-right-radius: var(--radius-button);
  border-bottom-left-radius: var(--radius-button);
  border-bottom-right-radius: var(--radius-button);
  background-image: radial-gradient(circle farthest-corner at 20% -200%, var(--color-secondary), var(--color-primary-light) 75%);
  color: var(--color-primary);
  font-size: var(--font-label);
  font-variation-settings: "opsz" 24, "wght" 610;
  letter-spacing: -.03em;
  box-shadow: var(--shadow--dark);
  flex: none;
  align-items: center;
  width: 19.875rem;
  height: 5.1875rem;
  padding-left: 2.5rem;
  padding-right: .71875rem;
  display: flex;
  position: relative;
  overflow: hidden;
}

[data-form='newsletter'] .actions {
  margin-top: .625rem;
}

input[type='submit']:not([data-form='newsletter'] input[type='submit']) {
  z-index: 2;
  color: var(--color-secondary);
  font-size: var(--font-label);
  font-variation-settings: "opsz" 24, "wght" 610;
  text-align: left;
  letter-spacing: -.03em;
  padding-top: 0;
  padding-bottom: 0;
  padding-right: 0;
  padding-left: inherit;
  border-radius: inherit;
  background-color: rgba(0, 0, 0, 0);
  transition-property: color;
  transition-duration: .58s;
  transition-timing-function: cubic-bezier(.22, .61, .36, 1);
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  border: unset;
  cursor: pointer;
}

.actions .label {
  color: var(--color-secondary);
  transition: color .58s cubic-bezier(.22, .61, .36, 1);
  user-select: none;
}

input[type='submit']:hover:not([data-form='newsletter'] input[type='submit']:hover),
.actions:hover .label {
  color: var(--color-primary);
}

.hs-fieldtype-file label {
  margin-bottom: .625rem;
}

.submitted-message {
  padding-top: var(--spacing-xxs);
  padding-right: var(--spacing-xs);
  padding-bottom: var(--spacing-xxs);
  padding-left: var(--spacing-xs);
  grid-column-gap: 11px;
  border-top-left-radius: var(--radius-border);
  border-top-right-radius: var(--radius-border);
  border-bottom-left-radius: var(--radius-border);
  border-bottom-right-radius: var(--radius-border);
  background-color: var(--color-success-bg);
  color: var(--color-success);
  -webkit-user-select: none;
  -ms-user-select: none;
  user-select: none;
  justify-content: flex-start;
  align-items: center;
  height: 100%;
  display: flex;
  font-size: var(--font-copy-sm-bold);
  font-variation-settings: "opsz" 24, "wght" 620;
  letter-spacing: -.03em;
  line-height: 1.24;
}

.submitted-message::before {
  content: '';
  position: relative;
  pointer-events: none;
  flex: none;
  height: 1.5625rem;
  width: 1.5625rem;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 25 25' class='icon--success'%3E%3Cpath d='M12.62.892c6.627 0 12 5.373 12 12 0 6.628-5.373 12-12 12s-12-5.372-12-12c0-6.627 5.373-12 12-12M18.271 8l-7.699 7.692-3.03-3.031L6 14.191l4.572 4.573 9.232-9.232z' fill='%2349d16f'/%3E%3C/svg%3E");
  display: block;
}


/* dialog/modals */
dialog {
  color: inherit;
  border: unset;
  background-color: unset;
  max-width: unset;
  max-height: unset;
  padding: unset;
  transition:
    transform .6s cubic-bezier(.22, .61, .36, 1),
    opacity .6s cubic-bezier(.22, .61, .36, 1);
}

::backdrop {
  background-color: #0005;
  opacity: 0;
  transition: opacity .6s cubic-bezier(.22, .61, .36, 1);
}

[show]::backdrop {
  opacity: 1;
}

.modal {
  transform: scale(0.95);
  opacity: 0;
}

.modal[show] {
  transform: scale(1);
  opacity: 1;
}

.modal--testimonials {
  transform: translateX(calc(100% - 3rem));
}

.modal--testimonials[show] {
  transform: translateX(0%);
}


/* ——— homepage ——— */
/* list dividers */
.statistics__list::before {
  content: '';
  height: 1.5px;
  background-color: var(--color-tp-mid);
  grid-column: 1 / 3;
  grid-row: 2 / 3;
}

.solution__nested-list li {
  width: calc(50% - 1.75rem / 2);
}


/* faq */
.faq__list--item {
  transition: opacity .75s cubic-bezier(.22, .61, .36, 1);
}

.faq__list--item.animate {
  opacity: 1;
}

.faq__nested-list .w-dyn-item:first-child .btn--faq {
  padding-top: 0;
}

.faq__nested-list .w-dyn-item {
  width: 100%;
  position: relative;
}

.btn--faq-wrap:hover+.btn--faq__border,
.btn--faq-wrap[open]+.btn--faq__border {
  transform: scaleY(2) !important;
}

.faq__answer p {
  margin-bottom: var(--spacing-xs);
  display: block;
}

.expand__path {
  transform-origin: 50% 50% !important;
  transition: transform .32s cubic-bezier(.22, .61, .36, 1);
}

.btn--faq-wrap[open] .expand__path {
  transform: scaleY(0);
}

.faq__answer {
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  transition: max-height .52s cubic-bezier(.22, .61, .36, 1), 
              opacity .52s cubic-bezier(.22, .61, .36, 1),
              visibility 0s cubic-bezier(.22, .61, .36, 1) .52s, 
              pointer-events 0s cubic-bezier(.22, .61, .36, 1) .52s;
}

.btn--faq-wrap[open] .faq__answer {
  max-height: var(--content-height);
  opacity: 1;
  transition: max-height .52s cubic-bezier(.22, .61, .36, 1), 
              opacity .52s cubic-bezier(.22, .61, .36, 1),
              visibility 0s cubic-bezier(.22, .61, .36, 1) 0s, 
              pointer-events 0s cubic-bezier(.22, .61, .36, 1) 0s;
}

.btn--faq-wrap:not([open]) .faq__answer {
  visibility: hidden;
  pointer-events: none;
}

.nav__filters-list::before {
  content: '';
  position: absolute;
  left: var(--btn-left, 0px);
  top: var(--btn-top, 0px);
  width: var(--btn-width, 0px);
  height: var(--btn-height, 3.25rem);
  border-radius: var(--radius-border);
  background-color: var(--color-tp);
  transition: all .45s cubic-bezier(.22, .61, .36, 1);
}

input[name='filter']:checked~.btn--filter,
input[name='approach']:checked~.btn--approach {
  color: var(--color-primary);
}

input[name='filter']:checked~.btn--filter:hover {
  background-color: transparent;
}


/* approach */
.progress-wrapper {
  transform: scaleX(0);
  transform-origin: right;
  display: block;
}

input[name='approach']:checked~.btn--approach .progress-wrapper,
.btn--approach:hover .progress-wrapper,
.btn--approach .progress {
  transform: scaleX(1);
  transform-origin: left;
}

@keyframes progress {
  from {
    transform: scaleX(0);
  }

  to {
    transform: scaleX(1);
  }
}

input[name='approach']:checked~.btn--approach .progress.animate {
  animation: progress 6.5s linear forwards;
}

@keyframes showImg {
  from {
    clip-path: inset(0% 0 0 round var(--radius-border));
  }

  to {
    clip-path: inset(100% 0 0 round var(--radius-border));
  }
}

.approach-img__list--item.animate {
  animation: showImg .75s cubic-bezier(0.22, 0.61, 0.36, 1) forwards;
  z-index: 1;
}


/* clients */
.clients__marquee:hover .clients__list,
.related__slider:hover .related__list {
  animation-play-state: paused !important;
}

@keyframes marquee {
  from {
    transform: translateX(0%);
  }

  to {
    transform: translateX(-100%);
  }
}


/* ——— resources ——— */
.w-richtext::before,
.w-richtext::after,
.highlights__list--item:has(.copy--lg-bold:empty),
[data-step='next'] {
  display: none;
}

.resources__list--item {
  opacity: 0;
  transform: translateY(var(--item-translateY));
}

@keyframes resourceItemFadeIn {
  from {
    opacity: 0;
    transform: translateY(var(--item-translateY));
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.resources__list--item.animate {
  animation: resourceItemFadeIn 3s cubic-bezier(0.19, 1, 0.22, 1) forwards;
  animation-delay: var(--item-delay);
}

.resource__link:hover .resource__img,
.resource__link:focus-visible .resource__img {
  transform: scale(1);
}

.article__body ul,
.article__body ol {
  margin-top: -1rem;
}

.article__body li ul,
.article__body li ol {
  margin-top: var(--spacing-tiny);
}

:root {
  --f-spinner-width: 36px;
  --f-spinner-height: 36px;
  --f-spinner-color-1: rgba(0, 0, 0, 0.1);
  --f-spinner-color-2: rgba(17, 24, 28, 0.8);
  --f-spinner-stroke: 2.75
}

.f-spinner {
  margin: auto;
  padding: 0;
  width: var(--f-spinner-width);
  height: var(--f-spinner-height)
}

.f-spinner svg {
  width: 100%;
  height: 100%;
  vertical-align: top;
  animation: f-spinner-rotate 2s linear infinite
}

.f-spinner svg * {
  stroke-width: var(--f-spinner-stroke);
  fill: none
}

.f-spinner svg *:first-child {
  stroke: var(--f-spinner-color-1)
}

.f-spinner svg *:last-child {
  stroke: var(--f-spinner-color-2);
  animation: f-spinner-dash 2s ease-in-out infinite
}

@keyframes f-spinner-rotate {
  100% {
    transform: rotate(360deg)
  }
}

@keyframes f-spinner-dash {
  0% {
    stroke-dasharray: 1, 150;
    stroke-dashoffset: 0
  }

  50% {
    stroke-dasharray: 90, 150;
    stroke-dashoffset: -35
  }

  100% {
    stroke-dasharray: 90, 150;
    stroke-dashoffset: -124
  }
}

.f-panzoom {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  transform: translate3d(0, 0, 0);
  background: #fff
}

.f-panzoom.is-draggable {
  cursor: move;
  cursor: grab
}

.f-panzoom.can-zoom_in {
  cursor: zoom-in
}

.f-panzoom.can-zoom_out {
  cursor: zoom-out
}

.f-panzoom.is-dragging {
  cursor: move;
  cursor: grabbing
}

.f-panzoom.in-fullscreen {
  position: fixed;
  top: 0;
  left: 0;
  margin: 0 !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  aspect-ratio: unset !important;
  z-index: 9999
}

.f-panzoom__content {
  display: block;
  margin: auto;
  position: relative;
  max-width: 100%;
  max-height: 100%;
  min-height: 0;
  object-fit: contain;
  transform: translate3d(0, 0, 0) scale(1) rotate(0) skew(0);
  transform-origin: center center;
  transition: none;
  -webkit-user-select: none;
  user-select: none;
}

.is-loading .f-panzoom__content {
  display: none
}

.is-scaling .f-panzoom__content {
  filter: blur(0px);
  will-change: transform, width, height;
  backface-visibility: hidden
}

picture.f-panzoom__content>img {
  width: 100%;
  height: auto;
  max-height: 100%
}

.f-panzoom__content:not(:last-child) {
  margin-bottom: 0
}

.f-panzoom__viewport {
  margin: auto;
  position: relative;
  width: fit-content;
  height: fit-content;
  min-height: 1px
}

.f-panzoom__viewport:not(:last-child) {
  margin-bottom: 0
}

.f-panzoom__caption:not(:first-child) {
  margin-bottom: auto
}

html.with-panzoom-in-fullscreen {
  overflow: hidden
}

:root {
  --f-button-bg: #f2f4f7;
  --f-button-hover-bg: #e9edf1;
  --f-button-active-bg: #e3e8ed;
  --f-button-transition: all .15s cubic-bezier(0.22, 0.61, 0.36, 1);
  --f-button-transform: none;
  --f-button-svg-stroke-width: 1.5;
  --f-button-svg-fill: none;
  --f-button-svg-filter: none;
  --f-button-svg-disabled-opacity: 0.65
}

.f-button {
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  width: 2.625rem;
  height: 2.625rem;
  border-radius: var(--radius-border);
  background: var(--f-button-bg);
  pointer-events: all;
  cursor: pointer;
  transition: var(--f-button-transition)
}

@media(hover: hover) {
  .f-button:hover:not([disabled]) {
    color: var(--f-button-hover-color);
    background-color: var(--f-button-hover-bg)
  }
}

.f-button:active:not([disabled]) {
  background-color: var(--f-button-active-bg)
}

.f-button:focus:not(:focus-visible) {
  outline: none
}

.f-button svg {
  width: 52.5%;
  height: 52.5%;
  fill: var(--f-button-svg-fill);
  stroke: currentColor;
  stroke-width: var(--f-button-svg-stroke-width);
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: opacity .15s cubic-bezier(0.22, 0.61, 0.36, 1);
  transform: var(--f-button-transform);
  filter: var(--f-button-svg-filter);
  pointer-events: none
}

.f-button[disabled] {
  cursor: default
}

.f-button[disabled] svg {
  opacity: var(--f-button-svg-disabled-opacity)
}

.f-button:focus-visible {
  z-index: 1;
}

.f-panzoom__toolbar {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  padding: 0;
  opacity: 1;
  transition: opacity .15s ease;
  z-index: 1;
  border-radius: var(--radius-border);
  background-color: var(--f-button-bg);
  margin-left: auto;
  margin-bottom: var(--spacing-tiny)
}

.is-idle .panzoom__toolbar {
  opacity: 0
}

[data-panzoom-action=toggleFS] g:first-child {
  display: flex
}

[data-panzoom-action=toggleFS] g:last-child {
  display: none
}

.in-fullscreen [data-panzoom-action=toggleFS] g:first-child {
  display: none
}

.in-fullscreen [data-panzoom-action=toggleFS] g:last-child {
  display: flex
}

[data-panzoom-action='zoomIn'],
[data-panzoom-action='zoomOut'],
[data-panzoom-action='reset'] {
  display: none;
}

.in-fullscreen [data-panzoom-action='zoomIn'],
.in-fullscreen [data-panzoom-action='zoomOut'],
.in-fullscreen [data-panzoom-action='reset'] {
  display: flex;
}

.f-panzoom:not(.in-fullscreen) .f-panzoom__content {
  cursor: pointer;
}

.in-fullscreen .f-panzoom__toolbar {
  margin: var(--spacing-tiny);
}


/* homepage resources slider */
.resources__slider:hover .slider__list,
.resources__slider:has(:focus-visible) .slider__list {
  animation-play-state: paused !important;
}


@keyframes slider {
  from {
    transform: translateX(0%);
  }

  to {
    transform: translateX(-100%);
  }
}

.slider__list--item svg {
  height: 100%;
}


.resources__slider {
  grid-template-rows: auto auto;
  grid-template-columns: 1fr 1fr;
  grid-auto-columns: 1fr;
  justify-content: flex-start;
  align-items: center;
  display: flex;
  overflow-x: scroll;
  -webkit-mask-image: linear-gradient(to right, #0000, #000 20% 80%, #0000);
  mask-image: linear-gradient(to right, #0000, #000 20% 80%, #0000);
  -ms-overflow-style: none;
  scrollbar-width: none;
  overflow-y: scroll;
  column-gap: var(--spacing-xxs);
}

.resources__slider::-webkit-scrollbar {
  display: none;
}

.slider__heading {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.slider__list {
  flex: none;
  animation: 230s linear infinite paused slider;
  display: flex;
  column-gap: var(--spacing-xxs);
}

.slider__list--item {
  flex: none;
  max-width: 19.5rem;
  display: flex;
  padding: .4375rem 0;
}

.slider__list--item a {
  cursor: inherit;
  user-select: none;
}

.resources__slider-wrap {
  display: flex;
  flex-direction: column;
  row-gap: var(--spacing-lg);
  padding: var(--spacing-xl) 0 var(--spacing-xl);
}

.container.slider__heading,
.container.slider__btn-wrap {
  padding-top: 0;
  padding-bottom: 0;
}

.slider__btn-wrap {
  display: none;
}


/* about us sustainability report pdfs */
.container.is-sustainability-report {
  max-width: 100%;
  padding-top: var(--spacing-md);
  padding-bottom: 0;
}

.is-sustainability-report details {
  user-select: none;
  max-width: 100%;
}

.is-sustainability-report summary {
  cursor: pointer;
  height: 4.125rem;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-border);
  list-style: none;
  position: relative;
  overflow: hidden;
  box-shadow: var(--shadow--dark);
}

.is-sustainability-report summary::-webkit-details-marker {
  display: none;
}

.is-sustainability-report summary span {
  display: flex;
  align-items: center;
  padding-left: 3.25rem;
  flex: 1;
  height: 4rem;
  font-size: var(--font-copy-md-bold);
  font-variation-settings: "opsz" 24, "wght" 620;
  letter-spacing: -0.03em;
  cursor: pointer;
  gap: 1.5rem;
  background-image: radial-gradient(circle farthest-corner at 12.5% -100%, hsl(207, 49%, 91%), hsl(212, 18%, 52%) 75%);
  transition: filter .42s cubic-bezier(.22, .61, .36, 1);
}

.is-sustainability-report summary:hover span {
  filter: brightness(110%);
}

.is-sustainability-report summary span svg {
  height: 60%;
}

.is-sustainability-report summary::before {
  content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0.24 0.28 14.78 8.54'%3E%3Cpath d='m13.6.282-2.99 3.17-2.989 3.17-5.98-6.34-1.4 1.4L7 8.822h1.24l6.78-7.14z' fill='%23ec912d'/%3E%3C/svg%3E");
  position: absolute;
  display: block;
  left: 1.5rem;
  pointer-events: none;
  width: 1.0625rem;
  font-size: 1rem;
  color: var(--color-brand);
  transition: rotate .42s cubic-bezier(.22, .61, .36, 1);
  rotate: -90deg;
  z-index: 1;
}

.is-sustainability-report details {
  margin: calc(var(--spacing-tiny) / 2) 0;
}

.is-sustainability-report summary:focus-visible,
.btn--faq:focus-visible {
  outline-offset: .25rem;
  outline: 1.5px solid var(--color-brand-light);
}

.is-sustainability-report details[open] summary::before {
  rotate: 0deg;
}

.btn--new-tab {
  background-color: var(--color-primary);
  color: var(--color-secondary);
  border-radius: var(--radius-border);
  height: calc(100% - 1.25rem);
  align-items: center;
  display: flex;
  padding: 0 1.125rem;
  margin-left: auto;
  position: absolute;
  right: .625rem;
  font-size: 0.96875rem;
  font-variation-settings: "opsz" 24, "wght" 570;
  letter-spacing: -0.009em;
  transition: background-color .48s cubic-bezier(.22, .61, .36, 1);
}

.btn--new-tab:hover {
  background-color: #1b232e;
}

.is-sustainability-report .content {
  box-sizing: border-box;
  max-width: 100%;
  max-height: 0;
  overflow: hidden;
  transition: max-height .58s cubic-bezier(.22, .61, .36, 1), visibility 0ms linear .58s, pointer-events 0ms linear .58s;
}

.is-sustainability-report details[open]+.content {
  max-height: 80vh;
  transition: max-height .75s cubic-bezier(.22, .61, .36, 1), visibility 0s cubic-bezier(.22, .61, .36, 1) 0s, pointer-events 0s cubic-bezier(.22, .61, .36, 1) 0s;
}

.is-sustainability-report .content .pdf {
  height: 80vh;
  width: 100%;
  border-radius: var(--radius-border);
  overflow: hidden;
  box-shadow: var(--shadow--dark);
}

.is-sustainability-report .content embed {
  width: 100%;
  height: 100%;
}

.is-sustainability-report details:not([open])+.content {
  visibility: hidden;
  pointer-events: none;
}


/* breakpoint styles */
@media screen and (max-width: 991px) {
  html {
    font-size: 1.45vw;
  }

  .contact .modal__content {
    gap: 2.5rem;
  }
}

@media screen and (max-width: 767px) {
  .benefits__list--item:last-child {
    padding-bottom: 0;
  }


  header:not(.auth) .copy--sm-bold,
  header .nav__list-wrapper.animating .copy--sm-bold {
    font-size: var(--font-lead-sm);
    font-variation-settings: 'wght' 440, 'opsz' 24;
    letter-spacing: -0.051em;
    padding: 2.375rem 0 2.375rem 3rem;
    width: 100%;
    height: 100%;
    display: inline-flex;
    align-items: center;
  }

  .nav__item--dropdown:hover .icon--chev {
    transform: rotate(180deg);
  }

  header nav .copy--sm-bold {
    padding: 0;
  }

  header .nav__item a::before {
    display: none;
  }

  header:not(.auth) .nav__list::after,
  header .nav__list-wrapper.animating .nav__list::after {
    display: none;
  }

  .nav__list::before {
    content: 'Navigation';
    position: relative;
    font-size: var(--font-copy-lg-bold);
    font-variation-settings: 'wght' 600, 'opsz' 24;
    letter-spacing: -0.03em;
    margin: 3rem 0 1rem 3rem;
  }

  header li::after,
  header li:first-child::before {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    transform-origin: left;
    height: 1px;
    width: 100%;
    transform: scaleX(0);
    transition-property: transform;
    transition-delay: .75s;
    background-color: var(--color-tp-light);
  }

  header li::after {
    bottom: 0;
  }

  header li:first-child::before {
    top: 0;
  }

  header .animate li:first-child::before {
    transition-delay: .055s !important;
  }

  header .animate li::after,
  header .animate li:first-child::before {
    transform: scaleX(1);
    transition: transform 1.5s cubic-bezier(0.19, 1, 0.22, 1);
    transition-delay: var(--after-delay);
  }

  header .nav__item.is-touch-btn::after {
    display: none;
  }

  @keyframes showNav {
    from {
      clip-path: inset(0 0 100% 0);
    }

    to {
      clip-path: inset(0 0 0% 0);
    }
  }

  .nav__list-wrapper.animate {
    animation: showNav .75s cubic-bezier(0.22, 0.61, 0.36, 1) forwards;
  }

  @keyframes hideNav {
    from {
      clip-path: inset(0 0 0% 0);
    }

    to {
      clip-path: inset(0 0 100% 0);
    }
  }

  .nav__list-wrapper {
    animation: hideNav .75s cubic-bezier(0.22, 0.61, 0.36, 1) forwards;
    transition-property: visibility;
    transition-delay: .75s;
    color: white;
  }
}

@media screen and (max-width: 479px) {
  html {
    font-size: 3.5vw;
  }

  header:not(.auth) .copy--sm-bold,
  header .nav__list-wrapper.animating .copy--sm-bold {
    padding-left: 1.25rem
  }

  .nav__list::before {
    margin-left: 1.25rem;
  }

  .line__2-2::after {
    content: '-';
  }

  .solution__nested-list li {
    width: 100%;
  }


  .creds__list--item::after {
    display: none;
  }

  .creds__list--item:nth-child(3)::after {
    display: block;
    content: '';
    width: 1.5px;
    background-color: var(--color-tp-light);
    margin: 0 1rem;
  }

  input[type='text'],
  input[type='email'],
  input[type='tel'],
  textarea {
    font-size: max(var(--font-copy-sm), 16px);
  }

  .form-columns-2 {
    flex-direction: column;
    grid-row-gap: 2.375rem;
  }

  .hs-form {
    grid-row-gap: 2.375rem;
  }

  .slider__heading .actions {
    display: none !important;
  }

  .slider__btn-wrap {
    display: block;
    margin-top: -3.5rem;
  }

  .article__acrobat {
    align-items: flex-start;
  }

  .container.is-sustainability-report {
    padding-top: 0;
  }

  .btn--new-tab {
    display: none;
  }

  .is-sustainability-report summary span {
    padding-left: 2rem;
    gap: .5rem
  }

  .is-sustainability-report summary::before {
    left: .625rem;
  }

  .is-sustainability-report summary span svg {
    height: 50%;
  }
}