/* Checkout page */

.ms-checkout-page,
.woocommerce-checkout .woocommerce-notices-wrapper {
  width: min(100% - var(--ms-container-gutter), var(--ms-container));
  max-width: none;
}

.woocommerce-checkout.woocommerce-order-received .ms-page-header {
  display: block;
  margin: 0 0 48px;
  text-align: center;
  text-transform: uppercase;
  letter-spacing: 0.22em;
  font-size: clamp(28px, 3vw, 38px);
  line-height: 1.2;
  align-self: center;
}

.woocommerce-checkout .ms-main,
.ms-checkout-page {
  padding: 58px 0 88px;
}

.ms-checkout-page__header {
  margin-bottom: 34px;
}

.ms-checkout-form {
  margin: 0;
}

.ms-checkout-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(380px, 0.96fr);
  gap: 34px;
  align-items: start;
}

.ms-checkout-layout #order_review {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.ms-checkout-layout #order_review br {
  display: none;
}

.ms-checkout-section-title,
.ms-checkout-section h3,
.woocommerce-billing-fields h3,
.woocommerce-additional-fields h3,
.woocommerce-shipping-fields h3 {
  margin: 0 0 20px;
  padding-bottom: 16px;
  border-bottom: 1px solid rgba(31, 41, 48, 0.16);
  color: var(--ms-color-text);
  font-size: clamp(24px, 2.3vw, 32px);
  font-weight: 400;
  letter-spacing: 0.08em;
  line-height: 1.2;
  text-transform: none;
}

.ms-checkout-customer-details {
  display: block;
}

.ms-checkout-section {
  margin-bottom: 26px;
}

.woocommerce form .form-row {
  margin: 0 0 14px;
  padding: 0;
}

.woocommerce form .form-row-first,
.woocommerce form .form-row-last {
  width: calc(50% - 12px);
}

.woocommerce form .form-row-first {
  float: left;
}

.woocommerce form .form-row-last {
  float: right;
}

.woocommerce form .form-row-wide {
  clear: both;
}

.woocommerce form .form-row label {
  margin-bottom: 6px;
  color: var(--ms-color-text);
  font-size: 13px;
  line-height: 1.35;
}

.woocommerce form .form-row label .required {
  color: #a50000;
  text-decoration: none;
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce form .select2-container .select2-selection--single {
  min-height: 36px;
  border: 1px solid rgba(31, 41, 48, 0.45);
  border-radius: 0;
  background: transparent;
  color: var(--ms-color-text);
  font-family: var(--ms-font-mono);
  font-size: 13px;
  letter-spacing: 0.04em;
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select {
  width: 100%;
  padding: 8px 11px;
}

.woocommerce form .form-row textarea {
  min-height: 58px;
  resize: vertical;
}

.woocommerce form .select2-container .select2-selection--single {
  height: 36px;
}

.woocommerce
  form
  .select2-container--default
  .select2-selection--single
  .select2-selection__rendered {
  padding-left: 11px;
  color: var(--ms-color-text);
  line-height: 34px;
}

.woocommerce
  form
  .select2-container--default
  .select2-selection--single
  .select2-selection__arrow {
  height: 34px;
}

.woocommerce-checkout .woocommerce-info,
.woocommerce-checkout .woocommerce-message,
.woocommerce-checkout .woocommerce-error {
  margin: 0 0 28px;
}

.ms-order-review-box {
  border: 1px solid rgba(31, 41, 48, 0.18);
  background: transparent;
}

.ms-review-table,
.woocommerce table.shop_table.ms-review-table {
  width: 100%;
  margin: 0;
  border: 0;
  border-collapse: collapse;
  background: transparent;
}

.ms-review-table th,
.ms-review-table td {
  padding: 14px 14px;
  border: 0;
  border-bottom: 1px solid rgba(31, 41, 48, 0.16);
  color: var(--ms-color-text);
  font-size: 13px;
  line-height: 1.45;
  vertical-align: top;
}

.ms-review-table thead th {
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: none;
}

.ms-review-table .product-total,
.ms-review-table td:last-child {
  text-align: left;
  /* white-space: nowrap; */
}

.ms-review-table td.product-name {
  /* width: 100%; */
}

.ms-review-table .product-quantity {
  margin-left: 5px;
  font-weight: 700;
}

.ms-review-table tfoot th {
  width: 38%;
  font-weight: 700;
  letter-spacing: 0.06em;
}

.ms-review-table tfoot .order-total th,
.ms-review-table tfoot .order-total td {
  font-size: 15px;
  font-weight: 700;
}

.ms-review-table .woocommerce-shipping-methods {
  margin: 0;
  padding: 0;
  list-style: none;
}

.ms-review-table .woocommerce-shipping-methods li {
  margin: 0 0 10px;
}

.ms-review-table .woocommerce-shipping-methods input {
  margin-right: 8px;
}

.ms-review-table .woocommerce-shipping-destination,
.ms-review-table .woocommerce-shipping-calculator {
  display: none;
}

.ms-checkout-payment ul.payment_methods,
.woocommerce-checkout #payment ul.payment_methods {
  margin: 0;
  padding: 0;
  border: 0;
  list-style: none;
}

.woocommerce-checkout #payment {
  border-radius: 0;
  background: transparent;
}

.woocommerce-checkout #payment ul.payment_methods li {
  margin: 0 0 15px;
  color: var(--ms-color-text);
  font-size: 13px;
  letter-spacing: 0.05em;
}

.woocommerce-checkout #payment ul.payment_methods li input {
  margin-right: 10px;
}

.woocommerce-checkout #payment div.payment_box {
  margin: 12px 0 18px;
  padding: 16px 18px;
  border-radius: 0;
  background: var(--ms-color-cream);
  color: var(--ms-color-text);
  font-size: 13px;
}

.woocommerce-checkout #payment div.payment_box::before {
  display: none;
}

.woocommerce-terms-and-conditions-wrapper,
.woocommerce-checkout #payment .form-row {
  color: var(--ms-color-text);
  font-size: 13px;
  line-height: 1.6;
}

.woocommerce-terms-and-conditions-wrapper a {
  color: var(--ms-color-text);
  text-decoration: underline;
}

.ms-place-order-button,
.woocommerce-checkout #payment #place_order {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  margin-top: 12px;
  border: 0;
  border-radius: 0;
  background: var(--ms-color-green-dark);
  color: var(--ms-color-text);
  font-family: var(--ms-font-mono);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.ms-place-order-button:hover,
.woocommerce-checkout #payment #place_order:hover {
  background: var(--ms-color-green);
  color: var(--ms-color-text);
}

.woocommerce-shipping-fields {
  margin-top: 22px;
}

.woocommerce-shipping-fields #ship-to-different-address {
  margin: 0 0 14px;
  padding: 17px 16px;
  background: var(--ms-color-cream);
  font-size: 16px;
  letter-spacing: 0.08em;
}

.woocommerce-shipping-fields #ship-to-different-address label {
  display: inline-flex;
  gap: 10px;
  align-items: center;
}

.create-account,
.woocommerce-account-fields {
  clear: both;
}

.woocommerce-order-received .woocommerce-order {
  width: 100%;
}

.ms-order-received {
  display: grid;
  gap: 28px;
  width: 100%;
}

.ms-order-received__intro {
  padding: 1rem;
  background: var(--ms-color-cream);
  text-align: center;
}

.woocommerce-checkout .ms-order-received__intro .woocommerce-notice {
  margin: 0;
  color: var(--ms-color-text);
  font-size: clamp(17px, 2vw, 22px);
  font-weight: 600;
  line-height: 1.5;
}

.woocommerce-order ul.ms-order-received__overview,
.ms-order-received__details ul.wc-bacs-bank-details {
  display: grid;
  grid-template-columns: repeat(5, minmax(auto, 1fr));
  gap: 1px;
  width: 100%;
  margin: 0;
  padding: 1px;
  border: 0;
  background: rgba(31, 41, 48, 0.14);
  list-style: none;
}

.woocommerce-order ul.ms-order-received__overview {
  grid-template-columns: repeat(4, minmax(auto, 1fr)) !important;
}

.woocommerce-order ul.ms-order-received__overview::before,
.woocommerce-order ul.ms-order-received__overview::after,
.ms-order-received__details .wc-bacs-bank-details::before,
.ms-order-received__details .wc-bacs-bank-details::after {
  display: none !important;
}

.ms-order-received__overview li,
.woocommerce-order ul.ms-order-received__overview li,
.ms-order-received__details .wc-bacs-bank-details li {
  min-width: 0;
  margin: 0 !important;
  padding: 18px 20px !important;
  border: 0 !important;
  background: var(--ms-color-page);
  color: var(--ms-color-muted);
  font-family: var(--ms-font-heading);
  font-size: 10px !important;
  font-weight: 700;
  letter-spacing: 0.14em;
  line-height: 1.35;
  text-transform: uppercase;
}

.ms-order-received__overview li::before,
.ms-order-received__overview li::after {
  content: none;
}

.ms-order-received__overview strong,
.ms-order-received__details .wc-bacs-bank-details strong {
  display: block;
  margin-top: 8px;
  overflow-wrap: anywhere;
  color: var(--ms-color-text);
  font-family: var(--ms-font-body);
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.02em;
  line-height: 1.35;
  text-transform: none;
}

.ms-order-received__details {
  display: grid;
  gap: 34px;
  width: 100%;
  margin-top: 34px;
}

.ms-order-received__details > p {
  margin: 0;
  padding: 20px 24px;
  background: var(--ms-color-cream);
  color: var(--ms-color-text);
  font-size: 14px;
  line-height: 1.7;
}

.woocommerce-order-received .woocommerce-order-details,
.woocommerce-order-received .woocommerce-customer-details,
.woocommerce-order-received .woocommerce-order-downloads {
  width: 100%;
  margin: 0;
}

.woocommerce-order-received .woocommerce-order-details__title,
.woocommerce-order-received .woocommerce-column__title,
.woocommerce-order-received .woocommerce-order-downloads__title {
  margin: 0 0 20px;
  color: var(--ms-color-text);
  font-family: var(--ms-font-heading);
  font-size: clamp(20px, 2vw, 26px);
  font-weight: 600;
  letter-spacing: 0.04em;
  line-height: 1.25;
}

.woocommerce-order-received .woocommerce table.shop_table.order_details {
  width: 100%;
  margin: 0;
  border: 1px solid rgba(31, 41, 48, 0.14);
  border-collapse: collapse;
  border-radius: 0;
  background: transparent;
}

.woocommerce-order-received .woocommerce table.shop_table.order_details th,
.woocommerce-order-received .woocommerce table.shop_table.order_details td {
  padding: 17px 18px;
  border: 0;
  border-bottom: 1px solid rgba(31, 41, 48, 0.12);
  color: var(--ms-color-text);
  font-size: 14px;
  line-height: 1.55;
  text-align: left;
  vertical-align: top;
}

.woocommerce-order-received
  .woocommerce
  table.shop_table.order_details
  thead
  th {
  background: rgba(226, 230, 232, 0.48);
  color: var(--ms-color-muted);
  font-family: var(--ms-font-heading);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.woocommerce-order-received
  .woocommerce
  table.shop_table.order_details
  .product-total,
.woocommerce-order-received
  .woocommerce
  table.shop_table.order_details
  tfoot
  td {
  text-align: right;
}

.woocommerce-order-received
  .woocommerce
  table.shop_table.order_details
  tfoot
  th {
  width: 34%;
  font-weight: 700;
}

.woocommerce-order-received
  .woocommerce
  table.shop_table.order_details
  tfoot
  tr:last-child
  th,
.woocommerce-order-received
  .woocommerce
  table.shop_table.order_details
  tfoot
  tr:last-child
  td {
  border-bottom: 0;
  font-size: 16px;
  font-weight: 700;
}

.woocommerce-order-received .woocommerce table.shop_table.order_details a {
  text-decoration: underline;
  text-underline-offset: 3px;
}

.woocommerce-order-received .woocommerce-customer-details .woocommerce-columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 34px;
}

.woocommerce-order-received .woocommerce-customer-details .woocommerce-column {
  float: none;
  width: auto;
  max-width: none;
}

.woocommerce-order-received .woocommerce-customer-details address {
  min-height: 100%;
  margin: 0;
  padding: 24px;
  border: 1px solid rgba(31, 41, 48, 0.14);
  border-radius: 0;
  background: var(--ms-color-page);
  color: var(--ms-color-text);
  font-size: 14px;
  font-style: normal;
  line-height: 1.85;
}

.woocommerce-order-received .woocommerce-customer-details address p {
  margin: 12px 0 0;
}

.woocommerce-order-received .woocommerce-customer-details--phone,
.woocommerce-order-received .woocommerce-customer-details--email {
  overflow-wrap: anywhere;
}

.ms-order-received--failed {
  max-width: 820px;
  margin: 0 auto;
  padding: clamp(24px, 4vw, 40px);
  border-top: 1px solid var(--ms-color-error-border);
  border-bottom: 1px solid var(--ms-color-error-border);
  background: var(--ms-color-error-bg);
  text-align: center;
}

.woocommerce-checkout .ms-order-received--failed .woocommerce-notice {
  margin: 0;
}

.woocommerce-checkout
  .ms-order-received--failed
  .woocommerce-thankyou-order-failed-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: center;
  margin-top: 20px;
}

@media (max-width: 980px) {
  .ms-checkout-layout {
    grid-template-columns: 1fr;
  }

  .ms-order-received__overview,
  .woocommerce-order ul.ms-order-received__overview,
  .ms-order-received__details ul.wc-bacs-bank-details {
    grid-template-columns: 1fr;
  }

  .ms-order-received__overview .email,
  .ms-order-received__overview .method {
    grid-column: span 1;
  }

  .woocommerce-order-received
    .woocommerce-customer-details
    .woocommerce-columns {
    grid-template-columns: 1fr;
    gap: 26px;
  }

  .woocommerce-customer-details address {
    min-height: 0 !important;
  }
}

@media (max-width: 640px) {
  .woocommerce form .form-row-first,
  .woocommerce form .form-row-last {
    float: none;
    width: 100%;
  }

  .woocommerce-checkout .woocommerce-info a,
  .woocommerce-checkout .woocommerce-message a {
    display: block;
    float: none;
    margin-top: 8px;
  }

  .ms-place-order-button,
  .woocommerce-checkout #payment #place_order {
    float: none;
    width: 100%;
  }

  .woocommerce-checkout.woocommerce-order-received .ms-page-header {
    margin-bottom: 32px;
    letter-spacing: 0.16em;
  }

  .ms-order-received {
    gap: 22px;
  }

  .ms-order-received__intro {
    padding: 22px 18px;
  }

  .ms-order-received__overview,
  .woocommerce-order ul.ms-order-received__overview,
  .ms-order-received__details ul.wc-bacs-bank-details {
    grid-template-columns: 1fr;
  }

  .ms-order-received__overview li,
  .woocommerce-order ul.ms-order-received__overview li {
    padding: 15px 16px;
  }

  .ms-order-received__details {
    gap: 28px;
    margin-top: 28px;
  }

  .ms-order-received__details > p {
    padding: 18px;
  }

  .woocommerce-order-received
    .woocommerce
    table.shop_table_responsive.order_details
    thead {
    display: none;
  }

  .woocommerce-order-received
    .woocommerce
    table.shop_table_responsive.order_details
    tr,
  .woocommerce-order-received
    .woocommerce
    table.shop_table_responsive.order_details
    tbody
    th,
  .woocommerce-order-received
    .woocommerce
    table.shop_table_responsive.order_details
    td {
    display: block;
    width: 100%;
  }

  .woocommerce-order-received
    .woocommerce
    table.shop_table_responsive.order_details
    th,
  .woocommerce-order-received
    .woocommerce
    table.shop_table_responsive.order_details
    td {
    padding: 13px 15px;
    text-align: left;
  }

  .woocommerce-order-received
    .woocommerce
    table.shop_table_responsive.order_details
    td::before {
    color: var(--ms-color-muted);
    font-family: var(--ms-font-heading);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
  }

  .woocommerce-order-received
    .woocommerce
    table.shop_table.order_details
    .product-total,
  .woocommerce-order-received
    .woocommerce
    table.shop_table.order_details
    tfoot
    td {
    text-align: left;
  }

  .woocommerce-order-received .woocommerce-customer-details address {
    padding: 18px;
  }

  .woocommerce-checkout
    .ms-order-received--failed
    .woocommerce-thankyou-order-failed-actions {
    display: grid;
  }
}

/* Full-width checkout when rendered inside the WordPress Checkout page content. */
.woocommerce-checkout .ms-page-content .ms-checkout-page,
.woocommerce-checkout .ms-page-content .ms-checkout-form,
.woocommerce-checkout .ms-page-content .ms-checkout-layout,
.woocommerce-checkout .ms-page-content .woocommerce-NoticeGroup,
.woocommerce-checkout .ms-page-content .woocommerce-notices-wrapper {
  width: 100%;
  max-width: none;
}

.woocommerce-checkout .ms-page-content .ms-checkout-page {
  padding-top: 0;
}

.woocommerce-columns--addresses::before,
.woocommerce-columns--addresses::after {
  display: none !important;
}

/* Payment Methods */

.payment_method_quickpay label {
  display: inline-flex;
  gap: 1rem;
  align-items: center;
}

.payment_methods .payment_box p {
  margin: 0;
}

/* Non-EU notice */

.ms-non-eu-notice {
  padding: 10px;
  background-color: var(--ms-color-cream);
  white-space: normal;
  font-weight: normal;
}

.ms-non-eu-notice p {
  padding: 0;
  margin: 0;
}

/* B2B Fields */

.ms-ship-later,
.ms-order-reference {
  font-size: 13px;

  margin: 1rem 0;
}

.ms-ship-later div,
.ms-order-reference div {
  display: flex;
  flex-direction: column;
}

.ms-ship-later .input-text,
.ms-order-reference .input-text {
  min-height: 36px;
  border: 1px solid rgba(31, 41, 48, 0.45);
  border-radius: 0;
  background: transparent;
  color: var(--ms-color-text);
  font-family: var(--ms-font-mono);
  font-size: 13px;
  letter-spacing: 0.04em;
  width: 100%;
  padding: 8px 11px;
}
