.form-col-1 {
  width: calc(100% - 150px);
}

.form-col-2 {
  width: calc(48% - 150px);
}

.form-col-3 {
  width: calc(32% - 150px);
}

.form-col-4 {
  width: calc(22% - 150px);
}

form.form-control {
  height: 100%;
  padding: 0;
  margin-bottom: 65px;
}
form.form-control span.caption {
  font-size: .65rem;
  height: auto;
  margin-top: 6px;
  color: #989fa8;
  padding-left: 5px;
}
form.form-control span.caption.error {
  color: #e63946;
}

/* form input container
========================*/
form.form-control > .row-container > .row {
  margin-bottom: 14px;
  width: 100%;
  max-width: 600px;
}

form.form-control > .row-container > .row:last-child {
  margin-bottom: 0;
}

/* flat type css */
form.form-control > .row-container > .row > span.flat-title {
  width: 150px;
  height: 38px;
  font-size: var(--t-form-title);
  color: var(--darkgray);
}

form.form-control > .row-container > .row > .flat-wrapper > .radio-inner > .radio-wrapper > label {
  margin: 0 0 0 5px;
  padding: 0;
  color: #2f3542;
  cursor: pointer;
  font-size: var(--t-form-title);
}

form.form-control > .row-container > .row > span.flat-title > span.required {
  margin-left: 0;
}

form.form-control > .row-container > .row > .flat-wrapper > .input-wrapper > input,
form.form-control > .row-container > .row > .flat-wrapper > .select-wrapper > select {
  transition: .3s;
  height: 38px;
  width: 100%;
  padding-left: 8px;
  border-radius: 4px;
  border: 1px solid #ced6e0;
  background-color: rgba(116, 185, 255, 0.04);
  outline: 0;
  color: #2f3542;
}

form.form-control > .row-container > .row > .flat-wrapper .input-wrapper > input.error,
form.form-control > .row-container > .row > .flat-wrapper .select-wrapper > select.error {
  background-color: rgba(230, 57, 70, 0.03);
  border: 1px solid #e63946;
}

form.form-control > .row-container > .row > .flat-wrapper > .input-wrapper > span.hint,
form.form-control > .row-container > .row > .flat-wrapper > .select-wrapper > span.hint {
  font-size: .65rem;
  height: auto;
  margin-top: 6px;
  color: #989fa8;
  padding-left: 5px;
}

form.form-control > .row-container > .row > .flat-wrapper > .input-wrapper > span.hint.error,
form.form-control > .row-container > .row > .flat-wrapper > .select-wrapper > span.hint.error {
  color: #e63946;
}


form.form-control > .row-container > .row > .flat-wrapper > .select-wrapper > select {
  padding-left: 4px;
  width: 100%;
  cursor: pointer;
}

form.form-control > .row-container > .row > .flat-wrapper > .input-wrapper > input::placeholder {
  color: rgba(120, 120, 124, 0.6);
  font-size: var(--t-form-ph);
}

form.form-control > .row-container > .row > .input-wrapper > input::placeholder {
  color: rgba(120, 120, 124, 0.6);
  font-size: var(--t-form-ph);
}

/* basic type css */
form.form-control > .row-container > .row > span.title,
form.form-control > .row-container > .row > .radio-inner > .radio-wrapper > label,
form.form-control > .row-container > .row > .checkbox-wrapper > label,
form.form-control > .row-container > .row > .select-wrapper > label,
form.form-control > .row-container > .row > .input-wrapper > label {
  margin-bottom: 5px;
  font-size: .8rem;
  color: #989fa8;
  height: 20px;
  padding-left: 8px;
}

form.form-control > .row-container > .row > .radio-inner > .radio-wrapper > label {
  margin: 0 0 0 5px;
  padding: 0;
  color: #2f3542;
  cursor: pointer;
}


form.form-control > .row-container > .row > span.title > span.required,
form.form-control > .row-container > .row > span.flat-title > span.required,
form.form-control > .row-container > .row > .radio-inner > .radio-wrapper > label > span.required,
form.form-control > .row-container > .row > .checkbox-wrapper > label > span.required,
form.form-control > .row-container > .row > .select-wrapper > label > span.required,
form.form-control > .row-container > .row > .input-wrapper > label > span.required {
  margin-left: 5px;
  font-size: .6rem;
  position: relative;
  top: 1px;
  color: #e63946;
}

form.form-control > .row-container > .row .input-wrapper > input,
form.form-control > .row-container > .row .select-wrapper > select {
  transition: .3s;
  height: 38px;
  width: 100%;
  padding-left: 8px;
  border-radius: 4px;
  border: 1px solid #ced6e0;
  background-color: rgba(116, 185, 255, 0.04);
  outline: 0;
  color: #2f3542;
}

form.form-control > .row-container > .row .select-wrapper > select {
  cursor: pointer;
}


form.form-control > .row-container > .row > .input-wrapper > input.error,
form.form-control > .row-container > .row > .select-wrapper > select.error {
  background-color: rgba(230, 57, 70, 0.03);
  border: 1px solid #e63946;
}

form.form-control > .row-container > .row > .flat-wrapper > .radio-inner > .radio-wrapper > input[type=radio],
form.form-control > .row-container > .row > .radio-inner > .radio-wrapper > input[type=radio] {
  width: 20px;
  height: 20px;
}

form.form-control > .row-container > .row > .flat-wrapper > .checkbox-wrapper > input[type=checkbox],
form.form-control > .row-container > .row > .checkbox-wrapper > input[type=checkbox] {
  position: relative;
  cursor: pointer;
  width: 0;
}

form.form-control > .row-container > .row > .flat-wrapper > .checkbox-wrapper > input[type=checkbox]:before,
form.form-control > .row-container > .row > .checkbox-wrapper > input[type=checkbox]:before {
  content: "";
  display: block;
  position: absolute;
  width: 20px;
  height: 20px;
  top: 0;
  left: 0;
  background-color: #e9e9e9;
  border-radius: 4px;
}

form.form-control > .row-container > .row > .flat-wrapper > .checkbox-wrapper > input[type=checkbox]:checked:before,
form.form-control > .row-container > .row > .checkbox-wrapper > input[type=checkbox]:checked:before {
  content: "";
  display: block;
  position: absolute;
  width: 20px;
  height: 20px;
  top: 0;
  left: 0;
  background-color: #1E80EF;
}

form.form-control > .row-container > .row > .flat-wrapper > .checkbox-wrapper > input[type=checkbox]:checked:after,
form.form-control > .row-container > .row > .checkbox-wrapper > input[type=checkbox]:checked:after {
  content: "";
  display: block;
  width: 5px;
  height: 10px;
  border: solid white;
  border-width: 0 2px 2px 0;
  -webkit-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
  position: absolute;
  top: 2px;
  left: 6px;
}

form.form-control > .row-container > .action-wrapper {
  margin-top: 20px;
  max-width: 600px;
}


form.form-control > .row-container > .action-wrapper > .action-text-wrapper > p {
  font-size: var(--t-small);
  font-weight: var(--t-medium-weight);
  margin-top: 10px;
}

form.form-control > .row-container > .action-wrapper > .action-text-wrapper > p > a {
  text-decoration: underline;
  cursor: pointer;
}

/* action cart box*/
form.form-control > .action-wrapper.cart-box,
.wrapper > .action-wrapper.cart-box {
  width: calc(250px - 20px);
  border: 1px solid #f1f1f1;
  border-radius: 4px;
  margin-left: 20px;
  padding: 10px;
  box-shadow: rgba(0, 0, 0, 0.04) 0px 3px 5px;
}
form.form-control > .action-wrapper.cart-box > dl,
.wrapper > .action-wrapper.cart-box > dl {
  height: 30px;
  font-size: .9rem;
}
form.form-control > .action-wrapper.cart-box > dl > dt,
.wrapper > .action-wrapper.cart-box > dl > dt {
  width: 110px;
}
form.form-control > .action-wrapper.cart-box > dl > dd,
.wrapper > .action-wrapper.cart-box > dl > dd {

  width: calc(100% - 110px);
}
form.form-control > .action-wrapper.cart-box > dl.grand-total > dd,
.wrapper > .action-wrapper.cart-box> dl.grand-total > dd {
  font-weight: 500;
  font-size: 1rem;
}

form.form-control > .action-wrapper.cart-box > #return,
.wrapper > .action-wrapper.cart-box > #return {
  margin-top: 20px;
  margin-bottom: 10px;
}
form.form-control > .action-wrapper.cart-box > a,
form.form-control > .action-wrapper.cart-box > button,
.wrapper > .action-wrapper.cart-box > a,
.wrapper > .action-wrapper.cart-box > button {
  height: 40px;
  font-size: .8rem !important;
}


/* ---- Custom styling for address fields ---- */
form.form-control > .row-container > .row .address-row {
  margin-bottom: 20px;
}

form.form-control > .row-container > .row .address-row.post-row > .column-3-space {
  width: calc(48% - 38px);
}

form.form-control > .row-container > .row .address-row:last-child {
  margin-bottom: 6px;
}

form.form-control > .row-container > .row .address-row > .post-sign {
  font-size: 1.0rem;
  padding-left: 8px;
}

form.form-control > .row-container > .row .address-row.flex > .input-wrapper,
form.form-control > .row-container > .row .address-row.flex > .select-wrapper {
  margin-left: 14px;
}

/* ADD TO FORM.css*/
form.form-control > .row-container > .row .address-row > .input-wrapper > input::placeholder {
  color: rgba(120, 120, 124, 0.6);
  font-size: .7rem;
}

/* ---------------*/
form.form-control > .row-container > .row .row-container > .participant-tag {
  margin-bottom: 20px;
}


@media (max-width: 600px) {
  form.form-control > .row-container > .row {
    margin-bottom: 10px;
  }

  form.form-control > .row-container > .row > .flat-title {
    flex-direction: row;
    align-items: center;
    width: 100% !important;
    height: 28px;
    justify-content: flex-start;
    margin-bottom: 0 !important;
  }

  form.form-control > .row-container > .row > .flat-wrapper {
    max-width: 100%;
    width: 100%;
    justify-content: flex-start;
    flex-direction: column;
  }

  form.form-control > .row-container > .row > .flat-wrapper > .input-wrapper {
    max-width: 100%;
    width: 100%;
    margin-bottom: 10px;
  }

  form.form-control > .row-container > .row > .flat-wrapper > .input-wrapper:last-child {
    margin-bottom: 0;
  }

  form.form-control > .row-container > .row > .flat-wrapper > .radio-inner > .radio-wrapper {
    width: 32%;
    font-size: .7rem;
  }

  form.form-control > .row-container > .row {
    flex-direction: column;
    align-items: start;
    width: 100%;
  }

  form.form-control > .action-wrapper {
    padding: 0;
    flex-direction: column-reverse;
    align-items: center;
  }

  form.form-control > .action-wrapper button {
    max-width: 100%;
    margin-bottom: 20px;
  }

  .horizontal-line,
  .horizontal-line-wide {
    max-width: 100%;
  }

  form.form-control > .action-wrapper button {
    width: 100%;
  }
}