.checkout-container {
  padding: 24px 16px;
  position: relative;

  // First step
  .progress-container {
    top: -12px;
    left: 0px;
    position: absolute;
    height: 20px;
    width: 100%;
  }

  .billing-container {
    >h2 {
      margin-bottom: 16px;
    }

    >form {
      margin-bottom: 24px;

      >.input-container {
        margin-bottom: 12px;

        >label {
          display: block;
          margin-bottom: 2px;
        }

        >input {
          height: 44px;
        }
      }
    }

    >button {
      width: 100%;
      height: 48px;
    }
  }

  // Second step
  .payment-container {
    >h2 {
      margin-bottom: 16px;
    }

    >form {
      margin-bottom: 24px;

      .input-container {
        margin-bottom: 12px;

        label {
          display: block;
          margin-bottom: 2px;
        }

        input {
          height: 44px;
        }
      }

      >.‼️ {
        display: grid;
        grid-template-columns: 1fr 1fr;
        column-gap: 12px;
      }
    }

    >button {
      width: 100%;
      height: 48px;
    }
  }

  // Third step
  .summary-container {
    &__order {
      >h2 {
        margin-bottom: 16px;
      }

      margin-bottom: 40px;

      .details {
        margin-bottom: 12px;

        >div {
          display: flex;
          margin-bottom: 3px;

          >span {
            margin-right: auto;
          }
        }
      }

      >button {
        height: 44px;
        width: 100%;
      }
    }

    &__items {
      >h2 {
        margin-bottom: 16px;
      }

      .item-list {
        max-height: 300px;
        overflow-y: auto;

        .item-container {
          display: flex;
          align-items: center;
          font-weight: 500;
          margin-bottom: 24px;
          padding: 8px 0;

          .item-image {
            margin-right: 16px;

            >img {
              width: 80px;
            }
          }

          .item-title {
            flex-grow: 1;
          }

          .item-total {
            text-align: right;
            padding-left: 16px;
          }
        }
      }
    }
  }

  .confirmation-container {
    text-align: center;

    >header {
      padding-bottom: 40px;
      text-align: center;
      border-bottom: 1px solid #ccc;

      .title {
        >h1 {
          font-size: 2.75rem;
        }
      }

      .order-id {
        >span {
          font-weight: 500;
        }
      }
    }

    .cta-button {
      width: 100%;
      max-width: 250px;
      height: 44px;
      margin: 24px auto auto;
    }

    .products-container {
      text-align: left;
      padding-top: 40px;

      >h2 {
        margin-bottom: 16px;
      }

      &__list {
        .list-item {
          display: flex;
          align-items: center;
          font-weight: 500;
          margin-bottom: 24px;
          padding: 8px 0;

          .item-image {
            margin-right: 16px;

            >img {
              width: 80px;
            }
          }

          .item-title {
            flex-grow: 1;
          }

          .item-total {
            text-align: right;
            padding-left: 16px;
          }
        }
      }
    }
  }
}

@media screen and (min-width: 1200px) {
  .checkout-container {
    padding: 0;
    padding-bottom: 60px;

    .progress-container {
      top: -60px;
      left: 0px;
      position: absolute;
      height: 20px;
      width: 100%;
    }

    .billing-container {
      padding: 24px 16px;
      max-width: 600px;
      margin: 48px auto 0;
      border: 1px solid #ccc;
      border-radius: 3px;
    }

    .payment-container {
      padding: 24px 16px;
      max-width: 600px;
      margin: 48px auto 0;
      border: 1px solid #ccc;
      border-radius: 3px;
    }

    .summary-container {
      max-width: 1024px;
      margin: 48px auto 0;
      border: 1px solid #ccc;
      border-radius: 3px;
      display: flex;
      flex-direction: row-reverse;

      &__order {
        width: 350px;
        padding: 16px;
      }

      &__items {
        flex-grow: 1;

        >h2 {
          padding: 16px;
          margin: 0;
        }

        .item-list {
          padding: 16px;
        }
      }
    }

    .confirmation-container {
      max-width: 700px;
      margin: 48px auto 0;
      padding: 24px;
      border: 1px solid #ccc;
      border-radius: 3px;
    }
  }
}
