@layer components {
  @scope (.flow) {
    :scope {
      container-type: inline-size;
      background-color: var(--wp--preset--color--base);
      padding-block: clamp(3.5rem, 2.923rem + 2.308cqi, 5rem);
      padding-inline: clamp(1.5rem, 0.154rem + 5.385cqi, 5rem);
    }

    .flow__heading {
      margin-block-end: clamp(2.5rem, 2.115rem + 1.538cqi, 3.5rem);
      font-size: clamp(1.5rem, 1.308rem + 0.769cqi, 2rem);
      font-weight: 700;
      color: var(--wp--custom--color--text);
      text-align: center;
    }

    .flow__steps {
      display: flex;
      flex-direction: column;
      align-items: center;
    }

    .flow__connector {
      inline-size: 1.5rem;
      block-size: 2rem;
      background-color: var(--wp--custom--color--brand);
      flex-shrink: 0;
      margin-block: -1px;
    }

    .flow__step {
      display: flex;
      flex-direction: column;
      align-items: center;
      background-color: var(--wp--custom--color--surface-blue);
      inline-size: 100%;
      max-inline-size: 18.875rem;
      padding-block: 1rem 1.5rem;
      padding-inline: 1.5rem;
    }

    .flow__badge {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      background-color: var(--wp--custom--color--brand);
      color: var(--wp--preset--color--base);
      font-size: 0.75rem;
      font-weight: 500;
      padding-block: 0.375rem;
      padding-inline: 1rem;
      border-radius: 100vmax;
      margin-block-end: 0.75rem;
    }

    .flow__time {
      display: flex;
      align-items: baseline;
      justify-content: center;
      margin-block-end: 1rem;
    }

    .flow__time-num {
      font-family: var(--wp--preset--font-family--accent);
      font-size: 3.5rem;
      font-weight: 700;
      color: var(--wp--custom--color--brand);
      line-height: 1;
    }

    .flow__time-unit {
      font-size: 1.5rem;
      font-weight: 700;
      color: var(--wp--custom--color--text);
      margin-inline-start: 0.125rem;
    }

    .flow__time-range {
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      margin-block-end: 1rem;
      padding-inline-start: 2rem;
    }

    .flow__time-range .flow__time {
      margin-block-end: 0;
    }

    .flow__time-separator {
      font-size: 1rem;
      font-weight: 700;
      color: var(--wp--custom--color--text);
      display: flex;
      align-items: baseline;
      align-self: flex-end;
      padding-inline-end: 1.5rem;
    }

    .flow__time-separator .flow__time-num {
      margin-inline-start: 0.25rem;
    }

    .flow__tags {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 0.5rem;
    }

    .flow__tag {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      background-color: var(--wp--preset--color--base);
      padding-block: 0.5rem;
      padding-inline: 1rem;
      font-size: 0.875rem;
      font-weight: 500;
      color: var(--wp--custom--color--text);
      white-space: nowrap;
    }

    @media (width > 1400px) {
      .flow__steps {
        display: grid;
        grid-template-columns: repeat(4, 18.875rem);
        justify-content: center;
        column-gap: 1.5rem;
        position: relative;
      }

      .flow__steps::before {
        content: "";
        position: absolute;
        inset-inline: 0;
        inset-block-start: 44%;
        block-size: 2rem;
        max-inline-size: 1200px;
        margin-inline: auto;
        background-color: var(--wp--custom--color--brand);
      }

      .flow__connector {
        display: none;
      }

      .flow__step {
        block-size: 18.875rem;
        max-inline-size: none;
        position: relative;
        z-index: 1;
      }
    }
  }
}
