.payment-form {
  padding: 30px 0px 20px 0px;
  width: 100%;
  max-width: 1000px;
  margin: 0 auto;
  display: flex;
  justify-content: center;
  border-radius: 20px;
}

.payment-form {
  align-items: center;
}

@media (max-width: 1050px) {
  .payment-form {
    border-radius: 0;
    margin: 0;
    height: 110vh;
    max-width: 100%;
  }
}

@media (max-width: 600px) {
  .payment-form {
    padding: 30px;
    box-sizing: border-box;
  }
}

#apple-pay-button {
  height: 48px;
  width: 100%;
  display: inline-block;
  -webkit-appearance: -apple-pay-button;
  -apple-pay-button-type: plain;
  -apple-pay-button-style: black;
}

#payment-form {
  background: #f5f5f5;
  color: black;
}

#payment-form input {
  border-radius: 6px;
  position: relative;
}

#payment-form .wrapper {
  max-width: 343px;
  position: relative;
}

#payment-form button {
  width: 100%;
}

#payment-form button#apple-pay-button {
  background: white;
  color: black;
  border: 1px solid rgba(0, 0, 0, 0.1);
  justify-content: center;
  line-height: 18px;
  padding: 13px;
}

#payment-form .border {
  color: rgba(0, 0, 0, 0.55);
  background: rgba(0, 0, 0, 0.1);
  height: 1px;
  width: 100%;
  margin: 30px 0;
  font-size: 12px;
  line-height: 20px;
  text-transform: uppercase;
  position: relative;
}

#payment-form .border span {
  position: absolute;
  top: -10px;
  background: #fafafa;
  padding: 0 10px;
  left: calc(50% - 1em - 5px);
}

/* Error Message DIV */
#payment-message {
  display: none;          /* hidden by default */
  margin-bottom: 20px;
  padding: 10px;
  border: 1px solid transparent;  /* invisible until styled */
  line-height: 18px;
  border-radius: 4px;
}

/* Error state */
#payment-message.error {
  display: block;
  border-color: #cc0023;
  color: #cc0023;
  background-color: #ffe6e6; /* optional: light red background */
}

/* Success state */
#payment-message.success {
  display: block;
  border-color: green;
  color: green;
  background-color: #e6ffe6; /* optional: light green background */
}

/* Info / neutral state */
#payment-message.info {
  display: block;
  border-color: #007bff;
  color: #007bff;
  background-color: #e6f0ff;
}

#ach-wrapper {
  display: none;
}

#ach-wrapper input:first-of-type {
  margin-bottom: 10px;
}

#ach-message {
  width: 100%;
  margin-top: 11px;
  margin-bottom: 11px;
  font-size: 14px;
  display: inline-block;
  color: #bf0020;
}

#ach-message:empty:before, #message:empty:before {
  content: "\200b";
}

#card-wrapper {
  margin-bottom: 40px;
  padding: 20px 20px 20px 20px;
  border: 2px solid #333333;
  border-radius: 4px;
}

.field-wrapper {
  margin: 25px 0 10px 0;
}

.field-wrapper label {
  width: 100%;
}

.field-wrapper input, .field-wrapper select {
  margin: 5px 0 5px 0;
}

#payment-flow-message {
  width: 100%;
  margin-top: 11px;
  margin-bottom: 11px;
  height: 100px;
  display: block;
}

#payment-flow-message.error {
  color: #bf0020;
  font-size: 12px;
  line-height: 14px;
}

#payment-flow-message.success {
  color: #3374ff;
}

#form-footer {
  display: relative;
  width: 50%;
  margin: 0 auto;
  padding-top: 50px;
}

#form-footer img {
  display: block;
  margin: 0 auto;
}