/* Demo sign-up modal and the fields Webflow's form styles don't cover. */
.demo-modal {
  width: min(36rem, calc(100vw - 2rem));
  max-height: calc(100dvh - 2rem);
  padding: 0;
  border: 0;
  background-color: var(--colors--white);
  overflow: auto;
  overscroll-behavior: contain;
}
.demo-modal::backdrop {
  background-color: rgb(0 0 0 / 0.55);
}
.demo-modal_inner {
  display: grid;
  gap: 1.5rem;
  padding: 2.5rem 2rem 2rem;
  position: relative;
}
.demo-modal_close {
  position: absolute;
  top: 0.75rem;
  right: 0.75rem;
  width: 2.375rem;
  height: 2.375rem;
  border: 0;
  border-radius: var(--radius--full);
  background-color: var(--colors--cream);
  color: var(--colors--green);
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
}
.form_input.w-select {
  appearance: none;
  width: 100%;
  padding-top: 0;
  padding-bottom: 0;
  padding-right: 2.5rem;
  line-height: 1.25;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5 6 6.5l5-5' stroke='%23205038' stroke-width='1.5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 1rem center;
  background-size: 0.75rem;
}
.form_input.demo-form_textarea {
  height: auto;
  min-height: 6rem;
  border-radius: 1.1875rem;
  resize: vertical;
}
.demo-form_trap {
  position: absolute;
  left: -10000px;
}
.form_row[data-demo-details][hidden] {
  display: none;
}
/* The demo form is taller now and opens as a modal from every CTA, so the inline copy sits
   below the device screenshots instead of over them. */
.reach-us_form {
  position: relative;
  inset: auto;
}
.action_images-wrapper {
  margin-bottom: 0;
}

/* Thank-you state: a tinted panel with a check, in place of the flat green block. */
.form_success.w-form-done {
  padding: 0;
  text-align: left;
  background-color: transparent;
}
.demo-success {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  padding: 1.75rem;
  border: 1px solid color-mix(in srgb, var(--colors--green-light) 55%, transparent);
  border-radius: .75rem;
  background-color: color-mix(in srgb, var(--colors--green-light) 16%, var(--colors--white));
  color: var(--colors--green);
}
.demo-success_icon {
  flex: none;
  display: grid;
  place-items: center;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 50%;
  background-color: var(--colors--green-light);
}
.demo-success_icon svg {
  width: 1.25rem;
  height: 1.25rem;
}
.demo-success_heading {
  font-family: var(--_typography---heading-font);
  font-size: 1.5rem;
  line-height: 1.15;
}
.demo-success_text {
  margin: .5rem 0 0;
  font-size: var(--_typography---font-size--text-main);
  line-height: 1.45;
  overflow-wrap: anywhere;
}

/* Article byline, next to the date. */
.article_author {
  font-size: var(--_typography---font-size--text-small, .875rem);
  opacity: .8;
}

/* Hero: the How line sits above "Talk to us" (as in the original design). */
.hero_button.is-v3 {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1.5rem;
}

/* Hero: a green fade over the lower part of the video, so the headline and the How line sit
   on calm colour instead of busy footage. */
.hero_video-inner::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(to top, var(--colors--green) 0%, rgba(32, 80, 56, .9) 18%, rgba(32, 80, 56, .55) 34%, rgba(32, 80, 56, 0) 58%);
}
.hero_video video {
  filter: brightness(.88) saturate(.85);
}

/* Case study card: the article photo above the text instead of an empty green box. */
.case-card_component {
  background-color: var(--colors--green);
  background-image: linear-gradient(to top, var(--colors--green) 38%, rgba(32, 80, 56, .35) 72%, rgba(32, 80, 56, .1)), var(--case-image, none);
  background-size: cover;
  background-position: center top;
}

@media screen and (max-width: 767px) {
  /* Lighter hero fade on phones: the headline sits below most of the video here. */
  .hero_video-inner::after {
    background: linear-gradient(to top, var(--colors--green) 0%, rgba(32, 80, 56, .85) 14%, rgba(32, 80, 56, 0) 42%);
  }
  /* Platform visual on phones: one chart per tab, large enough to read, instead of three
     overlapping cards at 45% width (cards picked without the design file's placeholder text). */
  .product_image_inner:not(.is-triangle) {
    display: none;
  }
  .product_image_inner.is-plan-2,
  .product_image_inner.is-proc-1,
  .product_image_inner.is-sop-3 {
    display: block;
    width: 88%;
    left: 6%;
    right: auto;
    top: auto;
    bottom: 5%;
  }
  .product_image_inner.is-triangle {
    width: 70%;
  }
}
