.checkout_main {
  background-color: var(--bg);
  border-top: 1px solid var(--border);
  padding: 8.1rem 0 11.2rem;
  margin-bottom: 0.6rem;
}
.checkout_main .steps ul {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  counter-reset: num;
  gap: 2rem 0;
}
.checkout_main .steps li {
  display: flex;
  align-items: center;
  font-size: 1.8rem;
  font-weight: 500;
  color: #6b756f;
  gap: 1.4rem;
}
.checkout_main .steps li::before {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background-image: linear-gradient(to right, #e7eae9, #d9dedd);
  font-size: 0.889em;
  width: 2.375em;
  height: 2.375em;
  border-radius: 1.1875em;
  min-width: max-content;
  white-space: nowrap;
  counter-increment: num;
  content: counter(num);
}
.checkout_main .steps li::after {
  display: inline-block;
  content: '';
  flex-shrink: 0;
  background: url("../img/checkout-nav.svg") no-repeat center / contain;
  width: 0.7223em;
  height: 0.7223em;
  margin: 0 2.4rem 0 0.8rem;
}
.checkout_main .steps li:last-child::after {
  display: none;
}
.checkout_main .steps li.processing {
  color: var(--title);
}
.checkout_main .steps li.processing::before {
  color: #fff;
  background: var(--primary);
}
.checkout_main .steps li.completed {
  color: #1c6b57;
}
.checkout_main .steps li.completed::before {
  color: transparent;
  background: url("../img/gou-w2.svg") no-repeat center / 34.3% #1c6b57;
}
.checkout_main .flex {
  margin-top: 4.2rem;
}
.checkout_main .forms {
  flex: 1;
  width: 100%;
  max-width: 90.5rem;
  counter-reset: num;
}
.checkout_main .step_card {
  border-radius: 1.4rem;
  border: 1px solid #edefef;
  background-color: #fff;
  padding: 3.3149171% 4.0883978% 3.5359116% 3.7569061%;
}
.checkout_main .step_card + .step_card {
  margin-top: 2rem;
}
.checkout_main .step_card .caption {
  font-size: 2.2rem;
  font-weight: 600;
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 0.9555em;
}
.checkout_main .step_card .caption::before {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.4rem;
  background-color: #e8631e;
  color: #fff;
  border-radius: 0.5em;
  counter-increment: num;
  content: counter(num);
  width: 2.143em;
  height: 2.143em;
  min-width: max-content;
}
/**
 * "An account will be created automatically... already have one?" hint,
 * shown above the "Contact & Institution" form for logged-out visitors
 * (parts/checkout_00_checkout_main.php). Its "Log in" button opens the
 * same popup as header.php's `.btn_login` (assets/js/checkout.js), so it
 * intentionally does NOT reuse auth.css's `.auth_link` (scoped to
 * `.auth_card`, which doesn't wrap this button) — a small, self-contained
 * rule instead.
 */
.checkout_main .checkout_login_hint {
  font-size: 1.4rem;
  color: var(--text);
  line-height: 1.6;
  margin-top: 1.6rem;
}
.checkout_main .checkout_login_hint #checkout_open_login {
  font-weight: 600;
  color: #1c6b57;
  text-decoration: underline transparent;
  transition: text-decoration-color 0.3s;
}
.checkout_main .checkout_login_hint #checkout_open_login:hover {
  text-decoration-color: currentColor;
}
.checkout_main .step_card form {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 1.1rem 0;
  margin-top: 2.7rem;
}
.checkout_main .step_card form span {
  width: 100%;
}
.checkout_main .step_card form .col-2 {
  width: 49.15865385%;
}
.checkout_main .step_card form .col-2-2 {
  width: 48.15865385%;
}
.checkout_main .step_card form .col-4 {
  width: 24.15865385%;
}
.checkout_main .step_card form .label {
  display: block;
  font-size: 1.4rem;
  font-weight: 500;
  color: #52605a;
  margin-bottom: 1rem;
  letter-spacing: -0.01em;
}
.checkout_main .step_card form input,
.checkout_main .step_card form textarea,
.checkout_main .step_card form select {
  display: block;
  width: 100%;
  border-radius: 0.9rem;
  border: 1px solid var(--border);
  transition: border-color 0.2s;
  font-size: 1.4rem;
  font-weight: 500;
  color: var(--title);
  padding: 0 1.9rem;
  height: 4.7rem;
}
.checkout_main .step_card form input::placeholder,
.checkout_main .step_card form textarea::placeholder,
.checkout_main .step_card form select::placeholder {
  color: #9aa3a1;
}
.checkout_main .step_card form input:focus,
.checkout_main .step_card form textarea:focus,
.checkout_main .step_card form select:focus {
  border-color: #1c6b57;
}
.checkout_main .step_card form textarea {
  font-weight: 400;
  padding-top: 1.1rem;
  padding-bottom: 2rem;
  height: 15.3rem;
}
.checkout_main .step_card form select {
  outline: none;
  background: url("../img/icon-select.svg") no-repeat center right 2.1rem/0.9rem;
  padding-right: 4rem;
}
.checkout_main .step_card form .msg .label {
  font-size: 1.5rem;
  font-weight: 400;
  color: #6b756f;
  margin-bottom: 2rem;
}
.checkout_main .step_card form .option {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  border-radius: 1.2rem;
  border: 1px solid #edefef;
  transition: all 0.3s;
  cursor: pointer;
  gap: 1.6rem;
  padding: 1.8rem 2.5rem 1.9rem;
}
.checkout_main .step_card form .option:has(input[type=radio]:checked) {
  border-color: #1c6b57;
  background-color: #eef5f2;
}
.checkout_main .step_card form .option:has(input[type=radio]:checked) input[type=radio] {
  border-color: #1c6b57;
}
.checkout_main .step_card form .option:has(input[type=radio]:checked) input[type=radio]::after {
  transform: scale(0.5556);
  opacity: 1;
}
.checkout_main .step_card form .option:has(input[type=radio]:checked) .cards span {
  background-color: #fff;
}
.checkout_main .step_card form .option input[type=radio] {
  position: relative;
  flex-shrink: 0;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  border: 1px solid #cdd2cf;
  padding: 0;
}
.checkout_main .step_card form .option input[type=radio]::after {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  top: 0;
  border-radius: 50%;
  background-color: #1c6b57;
  content: '';
  transition: all 0.3s;
  opacity: 0;
}
.checkout_main .step_card form .option .info {
  flex: 1;
  width: 100%;
  font-size: 1.4rem;
}
.checkout_main .step_card form .option .info strong {
  font-weight: 600;
}
.checkout_main .step_card form .option .info p {
  color: #6b756f;
  margin-top: 0.5rem;
}
.checkout_main .step_card form .option .price {
  font-weight: 600;
  color: #16201e;
}
.checkout_main .step_card form .option .cards {
  display: flex;
  flex-wrap: wrap;
  gap: 0.7rem;
}
.checkout_main .step_card form .option .cards span {
  display: inline-block;
  text-align: center;
  width: unset;
  font-size: 1.3rem;
  font-weight: 500;
  color: #52605a;
  background-color: var(--bg);
  transition: all 0.3s;
  border-radius: 0.385em;
  padding: 0.477em 0.731em;
}
.checkout_main .option_card {
  padding-bottom: 3rem;
}
.checkout_main .option_card form {
  margin-top: 3.3rem;
}
.checkout_main .msg_card form {
  margin-top: 1.6rem;
}
.checkout_main .order_card {
  position: sticky;
  top: 12rem;
  width: 32.5%;
  min-width: 35rem;
  border-radius: 1.4rem;
  border: 1px solid #edefef;
  background-color: #fff;
  box-shadow: var(--shadow2);
  padding: 2.1527778% 2.5694444% 2.1527778% 2.8472222%;
}
.checkout_main .order_card .caption {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 2rem;
  font-size: 2.6rem;
  font-weight: 600;
  letter-spacing: 0.01538em;
}
.checkout_main .order_card .caption .link {
  font-size: 1.4rem;
  font-weight: 600;
  color: #1c6b57;
  transition: all 0.3s;
  letter-spacing: normal;
  margin-bottom: 0.3rem;
}
.checkout_main .order_card .caption .link:hover {
  color: var(--primary);
}
.checkout_main .order_card .orders {
  border-top: 1px solid #e5eae9;
  margin-top: 2rem;
  padding-top: 1rem;
}
.checkout_main .order_card .orders li + li {
  border-top: 1px solid #e5eae9;
}
.checkout_main .order_card .orders li {
  display: grid;
  grid-template-columns: 5.2rem 1fr auto;
  align-items: center;
  gap: 1.6rem;
  padding: 2rem 0;
}
.checkout_main .order_card .orders .icon {
  border-radius: 0.9rem;
  background-image: linear-gradient(45deg, #e7eae9 14%, #d9dedd 86%);
}
.checkout_main .order_card .orders .icon img {
  transform: scale(0.57692308);
}
.checkout_main .order_card .orders .num {
  position: absolute;
  right: 0;
  top: 0;
  transform: translate(50%, -50%);
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.4rem;
  font-weight: 500;
  color: #fff;
  background-color: #1c6b57;
  width: 1.43em;
  height: 1.43em;
  min-width: max-content;
  white-space: nowrap;
  border-radius: 0.7143em;
  padding: 0 0.3em;
}
.checkout_main .order_card .orders .info .title {
  font-size: 1.5rem;
  font-weight: 600;
}
.checkout_main .order_card .orders .info a.title {
  vertical-align: top;
  text-decoration: underline transparent;
  transition: all 0.3s;
}
.checkout_main .order_card .orders .info a.title:hover {
  text-decoration-color: var(--title);
}
.checkout_main .order_card .orders .info .metas {
  font-size: 1.4rem;
  color: var(--text);
  margin-top: 0.6rem;
}
.checkout_main .order_card .orders .amount {
  font-size: 1.6rem;
  font-weight: 600;
  color: #16201e;
  margin-bottom: 0.6rem;
}
.checkout_main .order_card .promo_form {
  border-top: 1px solid #e5eae9;
  padding-top: 2rem;
  margin-top: 0.4rem;
}
.checkout_main .order_card .promo_form form {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 1.1rem;
}
.checkout_main .order_card .promo_form form input {
  display: block;
  width: 100%;
  font-size: 1.4rem;
  color: #16201e;
  border: 1px solid var(--border);
  transition: border-color 0.2s;
  border-radius: 0.9rem;
  padding: 0 1.7rem;
  height: 4.3rem;
}
.checkout_main .order_card .promo_form form input:focus {
  border-color: var(--primary);
}
.checkout_main .order_card .promo_form form input::placeholder {
  color: #6b756f;
}
.checkout_main .order_card .promo_form form input[type=submit] {
  font-weight: 600;
  background-color: #edf2f2;
  border-color: #edf2f2;
  transition: all 0.3s;
  padding: 0 2.45rem;
}
.checkout_main .order_card .promo_form form input[type=submit]:hover {
  background-color: var(--primary);
  border-color: var(--primary);
  color: #fff;
  box-shadow: 0 0 1em rgba(233, 106, 4, 0.5);
}
.checkout_main .order_card .price-lis {
  border-top: 1px solid #e5eae9;
  padding-top: 1.9rem;
  margin-top: 2.1rem;
}
.checkout_main .order_card .price-lis li + li {
  margin-top: 1.5rem;
}
.checkout_main .order_card .price-lis li {
  display: grid;
  grid-template-columns: 2fr 1fr;
  align-items: center;
  font-size: 1.7rem;
  color: #6b756f;
  gap: 1rem;
  letter-spacing: -0.0024em;
}
.checkout_main .order_card .price-lis li .amount {
  font-size: 1.8rem;
  font-weight: 500;
  color: #3c4843;
  text-align: right;
}
.checkout_main .order_card .price-lis .coupon-line .wpta-remove-coupon,
.cart_page .price-lis .coupon-line .wpta-remove-coupon,
.cart_drawer .price-lis .coupon-line .wpta-remove-coupon {
  display: inline-block;
  margin-left: 0.6rem;
  font-size: 1.3rem;
  font-weight: 500;
  color: #e96a04;
  text-decoration: underline;
  text-underline-offset: 0.15em;
}
.checkout_main .order_card .price-lis .coupon-line .wpta-remove-coupon:hover,
.cart_page .price-lis .coupon-line .wpta-remove-coupon:hover,
.cart_drawer .price-lis .coupon-line .wpta-remove-coupon:hover {
  color: #c45703;
}
.checkout_main .order_card .price-lis .total {
  border-top: 1px dashed #e5eae9;
  color: #16201e;
  font-size: 2rem;
  font-weight: 500;
  padding-top: 2.3rem;
  letter-spacing: 0.005em;
}
.checkout_main .order_card .price-lis .total .amount {
  font-size: 2.9rem;
  font-weight: 600;
  color: #16201e;
  letter-spacing: 0.02069em;
}
.checkout_main .order_card .btn {
  width: 100%;
  font-size: 1.6rem;
  line-height: 4.8rem;
  margin-top: 2.3rem;
}
.checkout_main .order_card .btn:disabled {
  opacity: 0.7;
  cursor: wait;
  pointer-events: none;
}
.checkout_main.is-submitting {
  position: relative;
}
.checkout_main .wpta-checkout-loader {
  position: absolute;
  inset: 0;
  z-index: 20;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: 12rem 2rem 4rem;
  background: rgba(247, 249, 248, 0.72);
  backdrop-filter: blur(1px);
}
.checkout_main .wpta-checkout-loader[hidden] {
  display: none;
}
.checkout_main .wpta-checkout-loader__card {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 1.2rem;
  max-width: 32rem;
  padding: 2.8rem 2.4rem;
  border-radius: 1.4rem;
  border: 1px solid #edefef;
  background: #fff;
  box-shadow: 0 1.2rem 3.2rem rgba(16, 24, 30, 0.08);
}
.checkout_main .wpta-checkout-loader__spinner {
  width: 3.2rem;
  height: 3.2rem;
  border-radius: 50%;
  border: 0.3rem solid #edf2f2;
  border-top-color: var(--primary);
  animation: wpta-checkout-spin 0.75s linear infinite;
}
.checkout_main .wpta-checkout-loader__title {
  font-size: 1.8rem;
  font-weight: 600;
  color: var(--title);
}
.checkout_main .wpta-checkout-loader__text {
  margin: 0;
  font-size: 1.4rem;
  line-height: 1.45;
  color: #6b756f;
}
@keyframes wpta-checkout-spin {
  to {
    transform: rotate(360deg);
  }
}
.checkout_main .order_card .tip {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.4rem;
  color: #6b756f;
  gap: 0.8rem;
  margin-top: 2rem;
}
.checkout_main .order_card .tip::before {
  display: inline-block;
  content: '';
  flex-shrink: 0;
  width: 1.07143em;
  height: 1.07143em;
  background: url("../img/icon-lock.svg") no-repeat center / contain;
}
/**
 * /cart/ page override: unlike checkout's form-column + sidebar layout,
 * `.cart_page` has nothing to its left, so the "Your Items" `.order_card`
 * (`.cart_page_items`) shouldn't be pinned to checkout's narrow 32.5%
 * sidebar width — let it flex to fill the row instead of leaving a big
 * empty gap before the "Order Summary" card. Only the summary stays
 * sticky/fixed-width.
 */
.cart_page .cart_page_items {
  position: static;
  width: auto;
  min-width: 0;
  flex: 1 1 40rem;
}
.cart_page .cart_page_items .promo_form form {
  max-width: 42rem;
}
/**
 * Empty cart state (woocommerce/cart/cart-empty.php override) — see that
 * file for why it's a separate template rather than a branch in cart.php.
 */
.cart_page .cart_empty_state {
  max-width: 52rem;
  margin: 4.2rem auto 0;
  padding: 5rem 4rem;
  text-align: center;
}
.cart_page .cart_empty_state .icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 8rem;
  height: 8rem;
  border-radius: 50%;
  background-color: var(--bg);
  margin-bottom: 2.4rem;
}
.cart_page .cart_empty_state .icon::after {
  content: '';
  width: 3.2rem;
  height: 3.2rem;
  background: url("../img/icon-cart.svg") no-repeat center / contain;
}
.cart_page .cart_empty_state h1 {
  font-size: 2.4rem;
  font-weight: 600;
  color: var(--title);
  margin-bottom: 1rem;
}
.cart_page .cart_empty_state p {
  font-size: 1.6rem;
  color: var(--text);
  margin-bottom: 2.8rem;
}
/**
 * Cart Order Summary: selectable shipping radios between Subtotal and
 * Total. Compact variant of `.step_card form .option` so they fit the
 * narrow sticky summary card. Selectors must beat
 * `.checkout_main .order_card .price-lis li` (grid 2fr/1fr).
 */
.checkout_main .order_card.cart_page_totals .price-lis li.shipping-options {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  grid-template-columns: unset;
  gap: 0.8rem;
  padding-top: 1.2rem;
  padding-bottom: 1.2rem;
}
.checkout_main .order_card.cart_page_totals .price-lis li.shipping-options .shipping-caption {
  margin: 0 0 0.2rem;
  font-weight: 600;
  color: #16201e;
}
.checkout_main .order_card.cart_page_totals .price-lis li.shipping-options .option {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 1rem;
  padding: 1rem 1.2rem;
  border-radius: 1rem;
  border: 1px solid #edefef;
  cursor: pointer;
  transition: all 0.3s;
  font-size: 1.3rem;
}
.checkout_main .order_card.cart_page_totals .price-lis li.shipping-options .option:has(input[type=radio]:checked) {
  border-color: #1c6b57;
  background-color: #eef5f2;
}
.checkout_main .order_card.cart_page_totals .price-lis li.shipping-options .option:has(input[type=radio]:checked) input[type=radio] {
  border-color: #1c6b57;
}
.checkout_main .order_card.cart_page_totals .price-lis li.shipping-options .option:has(input[type=radio]:checked) input[type=radio]::after {
  transform: scale(0.5556);
  opacity: 1;
}
.checkout_main .order_card.cart_page_totals .price-lis li.shipping-options .option input[type=radio] {
  position: relative;
  flex-shrink: 0;
  width: 1.6rem;
  height: 1.6rem;
  border-radius: 50%;
  border: 1px solid #cdd2cf;
  padding: 0;
  margin: 0;
  appearance: none;
  -webkit-appearance: none;
}
.checkout_main .order_card.cart_page_totals .price-lis li.shipping-options .option input[type=radio]::after {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  top: 0;
  border-radius: 50%;
  background-color: #1c6b57;
  content: '';
  transition: all 0.3s;
  opacity: 0;
}
.checkout_main .order_card.cart_page_totals .price-lis li.shipping-options .option .info {
  flex: 1;
  min-width: 0;
  font-size: 1.3rem;
  line-height: 1.35;
}
.checkout_main .order_card.cart_page_totals .price-lis li.shipping-options .option .info strong {
  font-weight: 600;
  color: #16201e;
}
.checkout_main .order_card.cart_page_totals .price-lis li.shipping-options .option .price {
  flex-shrink: 0;
  font-weight: 600;
  color: #16201e;
  white-space: nowrap;
}
.checkout_main .order_card.cart_page_totals.wpta-busy {
  opacity: 0.6;
  pointer-events: none;
}
@media screen and (max-width: 768px) {
  .checkout_main {
    padding: 30px 0 50px;
    margin: 0;
  }
  .checkout_main .steps li {
    font-size: 14px;
    gap: 12px;
  }
  .checkout_main .steps li::after {
    margin: 0 16px 0 0;
  }
  .cart_page .cart_empty_state {
    margin-top: 20px;
    padding: 40px 20px;
  }
  .cart_page .cart_empty_state .icon {
    width: 64px;
    height: 64px;
    margin-bottom: 16px;
  }
  .cart_page .cart_empty_state .icon::after {
    width: 26px;
    height: 26px;
  }
  .cart_page .cart_empty_state h1 {
    font-size: 20px;
  }
  .cart_page .cart_empty_state p {
    font-size: 14px;
    margin-bottom: 20px;
  }
  .checkout_main .flex {
    margin-top: 30px;
  }
  .checkout_main .step_card,
  .checkout_main .option_card,
  .checkout_main .msg_card {
    border-radius: 10px;
    padding: 20px;
  }
  .checkout_main .step_card + .step_card,
  .checkout_main .option_card + .step_card,
  .checkout_main .msg_card + .step_card {
    margin-top: 20px;
  }
  .checkout_main .step_card .caption,
  .checkout_main .option_card .caption,
  .checkout_main .msg_card .caption {
    font-size: 20px;
  }
  .checkout_main .step_card form,
  .checkout_main .option_card form,
  .checkout_main .msg_card form {
    margin-top: 20px;
    gap: 16px 0;
  }
  .checkout_main .step_card form .label,
  .checkout_main .option_card form .label,
  .checkout_main .msg_card form .label {
    font-size: 14px;
    margin-bottom: 10px;
  }
  .checkout_main .step_card form input,
  .checkout_main .option_card form input,
  .checkout_main .msg_card form input,
  .checkout_main .step_card form textarea,
  .checkout_main .option_card form textarea,
  .checkout_main .msg_card form textarea,
  .checkout_main .step_card form select,
  .checkout_main .option_card form select,
  .checkout_main .msg_card form select {
    font-size: 14px;
    height: 46px;
    padding: 0 20px;
  }
  .checkout_main .step_card form select,
  .checkout_main .option_card form select,
  .checkout_main .msg_card form select {
    background-size: 12px;
    background-position: right 20px center;
    padding-right: 40px;
  }
  .checkout_main .step_card form textarea,
  .checkout_main .option_card form textarea,
  .checkout_main .msg_card form textarea {
    height: 120px;
    padding: 10px 20px;
  }
  .checkout_main .step_card form .msg .label,
  .checkout_main .option_card form .msg .label,
  .checkout_main .msg_card form .msg .label {
    font-size: 14px;
    margin-bottom: 10px;
  }
  .checkout_main .step_card form .option,
  .checkout_main .option_card form .option,
  .checkout_main .msg_card form .option {
    border-radius: 10px;
    padding: 14px 20px;
    gap: 14px;
  }
  .checkout_main .step_card form .option input[type=radio],
  .checkout_main .option_card form .option input[type=radio],
  .checkout_main .msg_card form .option input[type=radio] {
    width: 18px;
    height: 18px;
  }
  .checkout_main .step_card form .option .info,
  .checkout_main .option_card form .option .info,
  .checkout_main .msg_card form .option .info {
    font-size: 13px;
  }
  .checkout_main .step_card form .option .info p,
  .checkout_main .option_card form .option .info p,
  .checkout_main .msg_card form .option .info p {
    margin-top: 2px;
  }
  .checkout_main .step_card form .option .cards,
  .checkout_main .option_card form .option .cards,
  .checkout_main .msg_card form .option .cards {
    gap: 6px;
  }
  .checkout_main .step_card form .option .cards span,
  .checkout_main .option_card form .option .cards span,
  .checkout_main .msg_card form .option .cards span {
    font-size: 12px;
  }
  .checkout_main .order_card {
    width: 100%;
    position: static;
    border-radius: 10px;
    padding: 20px;
    min-width: unset;
  }
  .checkout_main .order_card .caption {
    font-size: 20px;
    gap: 16px;
  }
  .checkout_main .order_card .caption .link {
    font-size: 14px;
    margin-bottom: 0;
  }
  .checkout_main .order_card .orders {
    margin-top: 16px;
    padding-top: 0;
  }
  .checkout_main .order_card .orders li {
    padding: 14px 0;
    gap: 14px;
    grid-template-columns: 50px 1fr auto;
  }
  .checkout_main .order_card .orders .num {
    font-size: 13px;
  }
  .checkout_main .order_card .orders .info .title {
    font-size: 14px;
  }
  .checkout_main .order_card .orders .info .metas {
    font-size: 13px;
    margin-top: 3px;
  }
  .checkout_main .order_card .orders .amount {
    font-size: 15px;
    margin-bottom: 0;
  }
  .checkout_main .order_card .promo_form {
    padding-top: 16px;
    margin-top: 0;
  }
  .checkout_main .order_card .promo_form form {
    gap: 10px;
  }
  .checkout_main .order_card .promo_form form input {
    font-size: 14px;
    padding: 0 20px;
    height: 42px;
  }
  .checkout_main .order_card .promo_form form input[type=submit] {
    padding: 0 20px;
  }
  .checkout_main .order_card .price-lis {
    margin-top: 16px;
    padding-top: 14px;
  }
  .checkout_main .order_card .price-lis li + li {
    margin-top: 12px;
  }
  .checkout_main .order_card .price-lis li {
    font-size: 14px;
  }
  .checkout_main .order_card .price-lis li .amount {
    font-size: 16px;
  }
  .checkout_main .order_card .price-lis .total {
    padding-top: 14px;
    font-size: 16px;
  }
  .checkout_main .order_card .price-lis .total .amount {
    font-size: 25px;
  }
  .checkout_main .order_card .btn {
    font-size: 14px;
    line-height: 42px;
    margin-top: 20px;
  }
  .checkout_main .order_card .tip {
    font-size: 13px;
    gap: 6px;
    margin-top: 16px;
  }
  .checkout_main .order_card.cart_page_totals .price-lis li.shipping-options {
    gap: 8px;
    padding-top: 10px;
    padding-bottom: 10px;
  }
  .checkout_main .order_card.cart_page_totals .price-lis li.shipping-options .option {
    border-radius: 10px;
    padding: 12px 14px;
    gap: 10px;
    font-size: 13px;
  }
  .checkout_main .order_card.cart_page_totals .price-lis li.shipping-options .option input[type=radio] {
    width: 16px;
    height: 16px;
  }
  .checkout_main .order_card.cart_page_totals .price-lis li.shipping-options .option .info {
    font-size: 13px;
  }
}
@media screen and (max-width: 576px) {
  .checkout_main .step_card form .col-2,
  .checkout_main .step_card form .col-2-2 {
    width: 100%;
  }
  .checkout_main .step_card form .col-4 {
    width: 48%;
  }
  .checkout_main .steps ul {
    align-items: flex-start;
    gap: 14px;
  }
  .checkout_main .steps li {
    flex-direction: column;
    flex: 1;
  }
  .checkout_main .steps li::after {
    display: none;
  }
}

/* === Checkout status card + inline field validation ===
   Replaces the raw `.woocommerce-error`/`.woocommerce-NoticeGroup-checkout`
   block WooCommerce would otherwise dump above the form (assets/js/
   checkout.js swallows that markup and feeds it into here instead) with a
   single on-brand summary: a progress bar, one chip per unfinished field,
   and — once a field has been visited — its own red/green message right
   under the input. Built by assets/js/checkout.js from the field list
   localized in wptaCheckoutParams.validation (inc/woocommerce.php
   wp_theme_agent_wc_checkout_validation_config()). */
.checkout_status {
  position: relative;
  border-radius: 1.4rem;
  border: 1px solid var(--warning_border);
  background: #fff;
  box-shadow: var(--shadow2);
  padding: 2.2rem 2.4rem 2.4rem;
  margin-bottom: 2rem;
  animation: wpta_notice_in 0.35s ease-out;
}
.checkout_status[hidden] {
  display: none;
}
.checkout_status_head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1.2rem 2rem;
  flex-wrap: wrap;
}
.checkout_status_heading {
  display: flex;
  align-items: center;
  gap: 1rem;
}
.checkout_status_icon {
  display: inline-flex;
  flex-shrink: 0;
  width: 2.2rem;
  height: 2.2rem;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3.5 2.5 20h19z' fill='none' stroke='%23b54708' stroke-width='1.8' stroke-linejoin='round'/%3E%3Cpath d='M12 9.5v4.4' stroke='%23b54708' stroke-width='1.8' stroke-linecap='round'/%3E%3Ccircle cx='12' cy='16.9' r='1' fill='%23b54708'/%3E%3C/svg%3E") no-repeat center / contain;
}
.checkout_status_title {
  font-size: 1.7rem;
  font-weight: 600;
  color: var(--title);
}
.checkout_status_count {
  font-size: 1.3rem;
  font-weight: 500;
  color: #9aa3a1;
  white-space: nowrap;
  padding-top: 0.3rem;
}
.checkout_status_bar {
  height: 0.5rem;
  border-radius: 0.25rem;
  background: var(--warning_border);
  margin-top: 1.4rem;
  overflow: hidden;
}
.checkout_status_bar span {
  display: block;
  height: 100%;
  border-radius: 0.25rem;
  background: var(--primary);
  transition: width 0.3s ease-out;
}
.checkout_status_chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem;
  margin-top: 1.6rem;
}
.checkout_status_chip {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  border: none;
  border-radius: 0.8rem;
  background: var(--warning_bg);
  color: var(--warning);
  font-size: 1.3rem;
  font-weight: 500;
  padding: 0.7rem 1.3rem;
  cursor: pointer;
  transition: background-color 0.2s;
}
.checkout_status_chip:hover,
.checkout_status_chip:focus-visible {
  background: var(--warning_border);
}
.checkout_status_chip .arrow {
  display: inline-block;
  font-weight: 600;
  transform: translateY(-0.05em);
}
.checkout_status_problems {
  list-style: none;
  margin: 1.6rem 0 0;
  padding-top: 1.6rem;
  border-top: 1px solid var(--border);
  font-size: 1.4rem;
  line-height: 1.6;
  color: var(--danger);
}
.checkout_status_problems[hidden] {
  display: none;
}
.checkout_status_problems li + li {
  margin-top: 0.5rem;
}
.checkout_status.is-done {
  border-color: var(--success_border);
  transition: opacity 0.4s ease-in;
}
.checkout_status.is-done .checkout_status_icon {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke='%231c6b57' stroke-width='1.8'/%3E%3Cpath d='M7.6 12.4l3.1 3.1L16.4 9' fill='none' stroke='%231c6b57' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.checkout_status.is-done .checkout_status_bar {
  background: var(--success_border);
}
.checkout_status.is-done .checkout_status_bar span {
  background: var(--success);
}
.checkout_status.is-fading {
  opacity: 0;
}

/* Per-field state: wrapper carries the state so both the input border and
   the message underneath react together. */
[data-wpta-field] .field_msg {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  margin-top: 0.7rem;
  font-size: 1.3rem;
  line-height: 1.45;
}
[data-wpta-field] .field_msg[hidden] {
  display: none;
}
[data-wpta-field] .field_msg::before {
  content: '';
  flex-shrink: 0;
  width: 1.5rem;
  height: 1.5rem;
  margin-top: 0.1rem;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}
[data-wpta-field].is-invalid input,
[data-wpta-field].is-invalid select {
  border-color: var(--danger);
}
[data-wpta-field].is-invalid .field_msg {
  color: var(--danger);
}
[data-wpta-field].is-invalid .field_msg::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Crect width='32' height='32' rx='7.5' fill='%23b42318'/%3E%3Cpath d='M16 9v9' stroke='%23fff' stroke-width='2.6' stroke-linecap='round'/%3E%3Ccircle cx='16' cy='22.8' r='1.6' fill='%23fff'/%3E%3C/svg%3E");
}
[data-wpta-field].is-valid input,
[data-wpta-field].is-valid select {
  border-color: var(--success);
}
[data-wpta-field].is-valid .field_msg {
  color: var(--success);
}
[data-wpta-field].is-valid .field_msg::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Crect width='32' height='32' rx='7.5' fill='%231c6b57'/%3E%3Cpath d='M10 16.4l4.2 4.3L22 12.6' fill='none' stroke='%23fff' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
[data-wpta-field].is-advisory input {
  border-color: var(--warning);
}
[data-wpta-field].is-advisory .field_msg {
  color: var(--warning);
}
[data-wpta-field].is-advisory .field_msg::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Crect width='32' height='32' rx='7.5' fill='%23b54708'/%3E%3Cpath d='M16 9v9' stroke='%23fff' stroke-width='2.6' stroke-linecap='round'/%3E%3Ccircle cx='16' cy='22.8' r='1.6' fill='%23fff'/%3E%3C/svg%3E");
}

/* Server prepends its own raw notice group into #wpta_checkout_form on a
   failed AJAX submit; checkout.js reads it and swallows it into
   .checkout_status on the same tick, but this hides it for the one frame
   before JS runs (and as a no-JS fallback alongside woocommerce/notices/
   error.php, which still renders normally on a full page reload). */
.checkout_main .woocommerce-NoticeGroup-checkout {
  display: none;
}

/* Coupon apply/remove feedback is the only `.woocommerce-message` /
   `.woocommerce-info` checkout.js doesn't reroute into `.checkout_status`
   (it's a one-line success/info aside, not a validation problem) — keep
   it, but slimmer than the shared public.css treatment so it still reads
   as a small aside rather than another big block. */
.checkout_main .woocommerce-message,
.checkout_main .woocommerce-info {
  max-width: 90.5rem;
  padding: 1.4rem 1.8rem 1.4rem 4.8rem;
  border-radius: 1rem;
  font-size: 1.4rem;
}
.checkout_main .woocommerce-message::before,
.checkout_main .woocommerce-info::before {
  left: 1.6rem;
  top: 1.4rem;
  width: 2.2rem;
  height: 2.2rem;
}
@media (max-width: 576px) {
  .checkout_status {
    padding: 1.8rem 1.8rem 2rem;
  }
  .checkout_status_title {
    font-size: 1.5rem;
  }
  .checkout_status_chips {
    gap: 0.6rem;
  }
  .checkout_status_chip {
    font-size: 1.2rem;
    padding: 0.6rem 1.1rem;
  }
}
/* === /Checkout status card + inline field validation === */
