/*

  Text Rotate Stylesheet
  ------------------------------------------------
  v0.11

*/
.js-text-rotate {
  --slider-y-offset: 3px;
  --slide-duration: 360ms;
  --slide-in-duration: var(--slide-duration);
  --slide-out-duration: var(--slide-duration);
  --letter-slide-distance: 25%;
  --letter-stagger-delay: 75ms;
  overflow: hidden;
  opacity: 0;
  transition: opacity ease-in-out var(--slide-duration); }
  .js-text-rotate .js-sentence {
    list-style: none;
    margin: 0;
    padding: 0;
    vertical-align: baseline; }
    .js-text-rotate .js-sentence,
    .js-text-rotate .js-sentence .word {
      display: inline;
      height: 100%; }
  .js-text-rotate.has-initiated {
    opacity: 1; }
  .hs-inline-edit .js-text-rotate {
    margin-left: -0.24em;
    margin-right: -0.24em;
    opacity: 1; }
    .hs-inline-edit .js-text-rotate .js-sentence {
      margin-left: 0.24em;
      margin-right: 0.24em; }
    .hs-inline-edit .js-text-rotate .word:not(:first-child) {
      display: none; }

.js-sentence {
  overflow: hidden; }

.js-rotate {
  position: relative; }

.js-slider {
  display: inline-block;
  text-align: left; }

.word {
  white-space: nowrap;
  list-style: none;
  position: absolute;
  vertical-align: top;
  display: inline-flex !important;
  top: 0;
  bottom: 0;
  margin-top: var(--slider-y-offset);
  transform: translateY(100%);
  opacity: 0; }
  .word > span {
    --delay: 0s;
    display: inline-block;
    position: relative;
    opacity: 0;
    transform: translateY(var(--letter-slide-distance));
    transition: ease-in-out 0.25s;
    transition-property: opacity, transform;
    transition-delay: var(--delay); }
  .word.slide-in {
    transform: translateY(0);
    transition: ease-in-out var(--slide-in-duration, var(--slide-duration));
    opacity: 1; }
    .word.slide-in > span {
      opacity: 1;
      transform: translateY(0); }
  .word.slide-out {
    transform: translateY(-100%);
    transition: ease-in-out var(--slide-out-duration, var(--slide-duration)); }
    .word.slide-out > span {
      opacity: 0;
      transform: translateY(calc(-1 * var(--letter-slide-distance))); }

.Block--hero {
  --hero-height: 23.33333rem;
  --image-width: 34.4rem;
  --image-height: 29.86667rem;
  --hero-heading-default-width: 71.66667rem;
  --hero-heading-narrow-width: 45.26667rem;
  position: relative;
  min-height: var(--hero-height);
  padding-top: var(--top-nav-height); }
  .Block--hero:not(.disable-minHeight) {
    padding-bottom: var(--space-sm); }
  @media (min-width: 600px) {
    .Block--hero {
      --hero-height: 36.66667rem; } }
  @media (min-width: 1200px) {
    .Block--hero {
      --hero-height: 46.66667rem; } }

.Block--hero {
  position: relative;
  display: flex; }
  .Block--hero .Block-mask > * {
    position: relative;
    z-index: 0; }
  .Block--hero .Block-mask video {
    pointer-events: none; }
  .Block--hero .Block-mask video::-webkit-media-controls-panel,
  .Block--hero .Block-mask video::-webkit-media-controls,
  .Block--hero .Block-mask video::-webkit-media-controls-start-playback-button {
    display: none !important; }
  .Block--hero .Block-mask:after {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 10;
    width: 100%;
    height: 100%;
    background: var(--mask-background); }
  .Block--hero [class^="Container"] {
    display: flex;
    flex-wrap: wrap; }
    @media (min-width: 900px) {
      .Block--hero [class^="Container"] {
        flex-wrap: nowrap; } }
  .Block--hero .Breadcrumb {
    position: absolute;
    top: 0;
    left: 0;
    margin-top: calc(var(--side-margin) / 2);
    margin-left: var(--side-margin);
    margin-right: var(--side-margin);
    padding: 0; }
    .Block--hero .Breadcrumb ul {
      background-color: initial; }
    .Block--hero .Breadcrumb li:only-child {
      display: none; }
  .Block--hero .Block-content {
    position: relative; }
    @media (min-width: 600px) {
      .Block--hero .Block-content {
        margin-right: auto; } }
    @media (min-width: 900px) {
      .Block--hero .Block-content {
        padding-right: 1.06667rem; } }
    .Block--hero .Block-content > *:last-child {
      margin-bottom: 0 !important; }
  .Block--hero .Block-subheading {
    --subheading-max-width: 37.33333rem;
    max-width: var(--subheading-max-width);
    opacity: 1;
    display: flex;
    align-items: center; }
    .Block--hero .Block-subheading img {
      margin-right: 0.85333rem; }
  .Block--hero .Block-heading {
    max-width: var(--heading-max-width);
    margin-bottom: 1.6rem; }
  .Block--hero .Block-body {
    --body-max-width: 37.33333rem;
    max-width: var(--body-max-width);
    margin-bottom: 1.33333rem; }
    @media (min-width: 600px) {
      .Block--hero .Block-body {
        margin-bottom: 1.6rem; } }
    @media (min-width: 600px) {
      .Block--hero .Block-body,
      .Block--hero .Block-body p {
        font-size: 1.2rem;
        line-height: 1.5;
        font-weight: 400;
        letter-spacing: 0;
        text-transform: none; } }
  @media (min-width: 600px) and (min-width: 600px) {
    .Block--hero .Block-body,
    .Block--hero .Block-body p {
      font-size: 1.33333rem;
      line-height: 1.5; } }
  .Block--hero .Block-image {
    position: relative;
    display: flex;
    justify-content: flex-start;
    padding-top: 3.2rem;
    width: 100%; }
    @media (min-width: 900px) {
      .Block--hero .Block-image {
        padding-top: 0;
        margin-left: 0;
        max-width: 50%;
        justify-content: flex-end;
        padding-left: 4.8rem; } }
    .Block--hero .Block-image img {
      width: 100%;
      height: 100%;
      max-height: 21.33333rem;
      -o-object-fit: contain;
         object-fit: contain; }
      @media (min-width: 900px) {
        .Block--hero .Block-image img {
          position: absolute;
          top: 50%;
          left: auto;
          z-index: 1;
          transform: translateY(-50%);
          width: var(--image-width);
          height: var(--image-height);
          max-height: 100%; } }
  .Block--hero .Block-imageFrame {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%; }
    @media (min-width: 900px) {
      .Block--hero .Block-imageFrame {
        position: absolute;
        top: 50%;
        left: 4.8rem;
        width: calc(100% - 4.8rem);
        height: 100%;
        min-height: 29.86667rem;
        transform: translateY(-50%); } }
    .hs-inline-edit .Block--hero .Block-imageFrame {
      border: 1px dashed rgba(var(--theme-mode-body-rgb), 0.25); }
      .hs-inline-edit .Block--hero .Block-imageFrame img {
        border: 1px dashed rgba(var(--theme-mode-body-rgb), 0.5); }
  .Block--hero.headingWidth-default {
    --heading-max-width: var(--hero-heading-default-width); }
  .Block--hero.headingWidth-narrow {
    --heading-max-width: var(--hero-heading-narrow-width); }
  .Block--hero.imageSize-small {
    --image-width: 21.06667rem;
    --image-height: 18.26667rem; }
  .Block--hero.imageSize-medium {
    --image-width: 27.6rem;
    --image-height: 24rem; }
  .Block--hero.imageSize-large {
    --image-width: 34.4rem;
    --image-height: 29.86667rem; }
  .Block--hero.imageAlignH-left .Block-image img {
    left: 0;
    right: auto;
    -o-object-position: left;
       object-position: left; }
  .Block--hero.imageAlignH-right .Block-image img {
    left: auto;
    right: 0;
    -o-object-position: right;
       object-position: right; }
  .Block--hero.imageAlignV-top .Block-image img {
    top: 0;
    bottom: auto;
    transform: translateY(0);
    -o-object-position: top;
       object-position: top; }
  .Block--hero.imageAlignV-bottom .Block-image img {
    top: auto;
    bottom: 0;
    transform: translateY(0);
    -o-object-position: bottom;
       object-position: bottom; }
  .Block--hero.alignHorizontal {
    /*----- Left-aligned -----*/ }
    .Block--hero.alignHorizontal-left .Block-content,
    .Block--hero.alignHorizontal-left .Block-content > * {
      text-align: left; }
    .Block--hero.alignHorizontal-center .Block-content,
    .Block--hero.alignHorizontal-center .Block-content > * {
      justify-content: center;
      text-align: center;
      margin-left: auto;
      margin-right: auto; }
    .Block--hero.alignHorizontal-center .Block-arrow {
      display: flex;
      justify-content: center; }
    .Block--hero.alignHorizontalright .Block-content,
    .Block--hero.alignHorizontalright .Block-content > * {
      text-align: right; }
  .Block--hero.disable-breadcrumbs .Breadcrumb {
    display: none; }
  .Block--hero.disable-minHeight {
    --hero-height: 0; }
    .Block--hero.disable-minHeight [class^="Container"] {
      padding-top: 4.26667rem; }
  .Block--hero.has-video .Block-mask {
    bottom: -15px; }
  @media (max-width: 599.98px) {
    .Block--hero.has-video:has(.video-pause-button) {
      padding-bottom: 4.26667rem; } }
  .Block--hero.has-video .video-pause-button {
    position: absolute;
    bottom: 0;
    right: 0;
    z-index: 10000;
    min-width: 0;
    min-height: 0;
    margin: 1.06667rem 1.06667rem 2.4rem;
    padding-left: 1.06667rem;
    padding-right: 1.06667rem;
    font-size: 13px; }
    .Block--hero.has-video .video-pause-button .font-icon-play {
      margin-right: 0.26667rem;
      font-size: 11px; }
  @media (max-width: 899.98px) {
    .Block--hero [class^="Container"] {
      flex-direction: column-reverse; }
    .Block--hero .Block-image.Block-image {
      max-height: 20rem;
      padding-top: 1.06667rem;
      margin-bottom: -1.6rem !important; }
    .Block--hero .Block-content {
      padding-top: 1.6rem; }
    .Block--hero.has-image .Block-content {
      padding-top: 4.8rem; } }

@media (prefers-reduced-motion: no-preference) and (min-width: 600px) {
  .Block--hero.animate-in .Block-subheading,
  .Block--hero.animate-in .Block-heading,
  .Block--hero.animate-in .Block-body,
  .Block--hero.animate-in .Block-preamble,
  .Block--hero.animate-in .Block-action,
  .Block--hero.animate-in .Block-arrow,
  .Block--hero.animate-in .Block-image {
    transition: all cubic-bezier(0.23, 1, 0.32, 1) 1s;
    transition-property: opacity, transform;
    opacity: 0;
    transform: translateY(1.06667rem); }
    .landing-page .Block--hero.animate-in .Block-subheading,
    .initiated .Block--hero.animate-in .Block-subheading, .landing-page
    .Block--hero.animate-in .Block-heading,
    .initiated
    .Block--hero.animate-in .Block-heading, .landing-page
    .Block--hero.animate-in .Block-body,
    .initiated
    .Block--hero.animate-in .Block-body, .landing-page
    .Block--hero.animate-in .Block-preamble,
    .initiated
    .Block--hero.animate-in .Block-preamble, .landing-page
    .Block--hero.animate-in .Block-action,
    .initiated
    .Block--hero.animate-in .Block-action, .landing-page
    .Block--hero.animate-in .Block-arrow,
    .initiated
    .Block--hero.animate-in .Block-arrow, .landing-page
    .Block--hero.animate-in .Block-image,
    .initiated
    .Block--hero.animate-in .Block-image {
      opacity: 1;
      transform: translateY(0); }
    .hs-inline-edit .Block--hero.animate-in .Block-subheading, .hs-inline-edit
    .Block--hero.animate-in .Block-heading, .hs-inline-edit
    .Block--hero.animate-in .Block-body, .hs-inline-edit
    .Block--hero.animate-in .Block-preamble, .hs-inline-edit
    .Block--hero.animate-in .Block-action, .hs-inline-edit
    .Block--hero.animate-in .Block-arrow, .hs-inline-edit
    .Block--hero.animate-in .Block-image {
      opacity: 1;
      transform: translateY(0); }
  .Block--hero.animate-in .Block-image {
    transform: translateY(0);
    transition-duration: 2s; }
  .Block--hero.animate-in .Block-heading {
    transition-delay: 0.15s; }
  .Block--hero.animate-in .Block-preamble,
  .Block--hero.animate-in .Block-body {
    transition-delay: 0.3s; }
  .Block--hero.animate-in .Block-action {
    transition-delay: 0.4s; }
  .Block--hero.animate-in .Block-arrow {
    transition-delay: var(--icon-delay-in, 1s); }
  .Block--hero.animate-in .DownArrow-icon {
    transition-delay: var(--icon-delay-in, 1s);
    animation-delay: var(--icon-delay-in, 1s); } }

.section-banner .circle-title {
  width: 100%;
  margin-top: 0rem;
  max-width: 20rem; }
  @media (min-width: 768px) {
    .section-banner .circle-title {
      max-width: 33.33333rem; } }
  @media (min-width: 1200px) {
    .section-banner .circle-title {
      margin-top: 2vh; } }
  .section-banner .circle-title:after {
    --circle-size: 18rem;
    background-position: center;
    top: 4.25rem;
    width: var(--circle-size);
    height: var(--circle-size); }
    @media (min-width: 768px) {
      .section-banner .circle-title:after {
        --circle-size: 23rem;
        top: 12rem; } }
    @media (min-width: 1200px) {
      .section-banner .circle-title:after {
        --circle-size: 32rem;
        top: 8rem; } }

body .section-banner {
  padding-top: var(--top-nav-height); }
  body .section-banner h1 {
    font-size: 2.66667rem;
    line-height: 1.1;
    font-weight: 600;
    letter-spacing: -0.005em;
    margin-bottom: 0; }
    @media (min-width: 600px) {
      body .section-banner h1 {
        font-size: 4rem;
        line-height: 1.125; } }
    @media (min-width: 1200px) {
      body .section-banner h1 {
        font-size: 5.33333rem; } }

.hero-content h2 {
  font-size: 1.6rem;
  line-height: 1.11;
  font-weight: 600;
  letter-spacing: 0.005em; }
  @media (min-width: 600px) {
    .hero-content h2 {
      font-size: 2.4rem; } }

.Block--caseStudyHero .Block-content {
  max-width: 50.66667rem; }

.Block--caseStudyHero .Block-image {
  display: none; }