#hero {
  padding-top: 10rem;
  text-align: center;
  background: center / cover url("./hero-bg.svg?v=w3nG3GfG0j");
  h1 {
    margin: 0;
    font-size: clamp(2rem, 2.4vw + 1.3rem, 3.6rem);
  }
  p {
    max-width: 56rem;
    margin: 1em auto;
    font-size: clamp(1rem, .8vw + .9rem, 1.3rem);
    line-height: 1.75;
  }
  img {
    width: 100%;
    height: auto;
  }
  nav {
    display: flex;
    margin: 4rem auto;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 1rem 2rem;
    font-weight: 700;
    font-size: 1.1rem;
    letter-spacing: .01em;
    white-space: nowrap;
  }
  a {
    font-size: 1.1rem;
    font-weight: 700;
    &.primary {
      padding: 1.25rem 1.75rem;
      color: white;
      background-color: black;
      border-radius: .4rem;
      text-decoration: none;
      transition: opacity .2s;
      &:hover { opacity: .8; }
    }
    &.secondary {
      padding: .5rem .75rem;
      color: black;
      text-decoration: underline transparent;
      text-decoration-thickness: 3px;
      text-underline-offset: .8rem;
      transition: text-decoration-color .2s;
      &:hover { text-decoration-color: currentcolor; }
    }
  }
  #hero-video {
    position: relative;
    img {
      width: 95vw;
      height: auto;
      max-width: 90rem;
      margin-inline: -50%;
    }
    button {
      display: grid;
      place-items: center;
      width: 10rem;
      aspect-ratio: 1 / 1;
      margin: 0;
      position: absolute;
      inset: 50% auto auto 50%;
      translate: -50% -50%;
      background: #DEEBFAC8;
      border: none;
      border-radius: 50%;
      cursor: pointer;
      transition: scale .3s;
      svg {
        display: block;
        width: 5rem;
        aspect-ratio: 1 / 1;
      }
      &:hover { scale: 1.07; }
    }
  }
  dialog {
    display: block;
    width: 90%;
    height: 90%;
    padding: 0;
    position: fixed;
    background: none;
    border: none;
    &:not([open]){
      opacity: 0;
      pointer-events: none;
    }
    &::backdrop { background: rgb(0 0 0 / 40%); }
    video-player {
      display: block;
      max-width: 100%;
      max-height: 100%;
      aspect-ratio: 16 / 9;
      border-radius: .5rem;
      overflow: clip;
      &:not(:fullscreen){
        position: absolute;
        translate: -50% -50%;
        inset: 50% -50% -50% 50%;
      }
    }
  }
  #stats {
    padding-block: 5rem;
    b {
      background-image: linear-gradient(60deg, #121a59, #6a56df);
    }
  }
}

#trust, #better-decisions {
  display: grid;
  grid: auto auto / repeat(auto-fill, minmax(min(25rem, 100%), 1fr));
  gap: 6rem clamp(2rem, 25vw - 12rem, 4rem);
  padding-block: 9rem 8rem;
  h2 {
    grid-area: 1 / 1 / 2 / -1;
    margin: 0 auto;
    font-size: clamp(1.8rem, 3.75vw + .675rem, 3rem);
    text-align: center;
  }
  h3 {
    font-size: clamp(1.3rem, 1.4vw + 1rem, 1.8rem);
  }
  section {
    place-self: start center;
    max-width: 40rem;
    padding: 0;
    margin: 0;
  }
  img {
    display: block;
    margin: 0 auto 3rem;
    max-width: 100%;
    height: auto;
  }
}

#unmatched {
  display: grid;
  grid: auto / minmax(0, 5fr) minmax(0, 3fr);
  gap: 2rem 3rem;
  padding-block: 4rem 8rem;
  color: white;
  background: bottom / 100% 100% no-repeat linear-gradient(150deg,
    #385EAA,
    #0F1C37 40%
  );
  h2 {
    grid-area: 1 / 1 / 2 / -1;
    margin: 1.5em auto 1em;
    font-weight: 600;
    font-size: clamp(1.8rem, .8vw + 1.6rem, 2.2rem);
  }
  section {
    display: flex;
    justify-content: center;
    flex-flow: column;
    gap: 1rem;
    padding: 0;
    position: relative;
    h3, p { margin: 0; }
    &:where(:not(:last-of-type))::after {
      content: url("./down-arrow.svg?v=IDYLcZvE/f");
      display: block;
      width: 2rem;
      height: 2rem;
      position: absolute;
      inset: 100% calc(183% + 2rem) auto auto;
    }
  }
  h3 {
    font-size: 1.1rem;
  }
  img {
    place-self: center;
    width: min(100%, 43rem);
    height: auto;
    &.narrow { max-width: 30rem; }
  }
  img.wide { display: block; }
  img.narrow { display: none; }
  @media(width < 56rem){
    grid: auto / auto;
    section::after {
      position: static;
      margin: 1rem auto 0;
    }
    img.wide { display: none; }
    img.narrow { display: block; }
  }
}

#answer-questions {
  padding-inline: max((100% - 1300px) / 2 + 2rem, 2rem);
  background: bottom / 100% 100% no-repeat linear-gradient(135deg,
    #D2F3FF 10%,
    #FFEBD4,
    #E2DAFF 90%
  );
  text-align: center;
  h2 {
    margin: 1.5em auto 1em;
    font-weight: 600;
    font-size: clamp(1.8rem, .8vw + 1.6rem, 2.2rem);
  }
  p {
    margin: 1rem auto;
    font-size: 1.1rem;
    max-width: 46rem;
  }
  img {
    width: 100%;
    height: auto;
    margin: 3rem auto;
  }
}

#features {
  display: grid;
  grid: auto-flow dense auto / 1fr 1fr;
  gap: clamp(2rem, 50vw - 26rem, 6rem);
  padding-block: 8rem;
  color: white;
  background: #0F1C37;
  img {
    place-self: center;
    display: block;
    width: 100%;
    height: auto;
    &:where(:nth-of-type(n + 3)){ grid-column: 2; }
  }
  section {
    padding: 0;
    max-width: 28rem;
    place-self: center start;
    &:where(:nth-of-type(n + 3)){ place-self: center end; }
  }
  ul {
    list-style: inside;
    padding: 0;
    margin: 0;
  }
  h3 {
    font-size: clamp(1.4rem, .8vw + .8rem, 1.5rem);
  }
  @media(width < 56rem){
    grid: auto / 1fr;
    img {
      grid-column: auto;
      max-width: 30rem;
    }
    section { place-self: center; }
  }
}

#also-crm {
  display: grid;
  grid: auto auto auto / 1fr 1fr;
  gap: 3rem clamp(2rem, 25vw - 12rem, 4rem);
  padding-block: 9rem 2rem;
  text-align: center;
  h2 {
    grid-area: 1 / 1 / 2 / -1;
    margin: 0 auto;
    font-size: clamp(1.8rem, 3.75vw + .675rem, 3rem);
  }
  p {
    grid-area: 2 / 1 / 3 / -1;
    max-width: 60rem;
    margin: 0 auto 2rem;
    font-size: 1.1rem;
  }
  a {
    color: #2143f7;
    text-decoration: none;
    &:hover { text-decoration: underline; }
  }
  section {
    place-self: start center;
    max-width: 40rem;
    padding: 0;
    margin: 0;
  }
  img {
    display: block;
    margin: 0 auto;
    max-width: 100%;
    height: auto;
  }
}

#integrations {
  margin: 8rem auto 6rem;
}

#how-we-help {
  padding-block: 4rem 8rem;
  h2 {
    margin-block: 0 2em;
    font-size: clamp(1.8rem, 3.75vw + .675rem, 3rem);
    text-align: center;
  }
  nav {
    display: flex;
    max-width: 50rem;
    margin: 0 auto;
    flex-flow: row;
    gap: 2rem;
  }
  a {
    flex: 0 1 800px;
    overflow: clip;
    border-radius: 1rem;
    img {
      display: block;
      width: 100%;
      height: auto;
      transition: scale .2s;
    }
    &:hover img { scale: 1.05; }
  }

  @media (width < 800px){
    nav {
      flex-flow: column;
      max-width: 30rem;
      margin-inline: auto;
    }
    a { flex: 0 0 auto; }
  }
}
