/**
 * WooCommerce cart, checkout, order and account presentation.
 * Business rules remain owned by WooCommerce and ukmeds247-operations.
 */

main.ukmeds247-transaction {
  inline-size: 100%;
}

/* Explicit integration specificity beats native WooCommerce form defaults. */
.ukmeds247-transaction .woocommerce form:is(.login, .register, .lost_reset_password) {
  background: var(--ukmeds247-color-background);
  border: var(--ukmeds247-border-width) solid var(--ukmeds247-color-border);
  border-radius: var(--ukmeds247-radius-lg);
  box-shadow: none;
  color: var(--ukmeds247-color-text);
  margin-block: var(--ukmeds247-space-4);
  padding: var(--ukmeds247-space-5);
}

.ukmeds247-transaction .woocommerce form:is(.login, .register, .lost_reset_password) button.button {
  background: var(--ukmeds247-color-brand-primary);
  border: var(--ukmeds247-border-width) solid var(--ukmeds247-color-brand-primary);
  border-radius: var(--ukmeds247-radius-md);
  color: var(--ukmeds247-color-text-inverse);
  font: inherit;
  font-weight: var(--ukmeds247-font-weight-semibold);
  min-block-size: var(--ukmeds247-touch-target);
  padding: var(--ukmeds247-space-3) var(--ukmeds247-space-5);
}

.ukmeds247-transaction .woocommerce form:is(.login, .register, .lost_reset_password) button.button:hover {
  background: var(--ukmeds247-color-brand-primary-hover);
}

.ukmeds247-transaction .woocommerce form:is(.login, .register, .lost_reset_password) button.button:disabled {
  background: var(--ukmeds247-color-disabled-surface);
  border-color: var(--ukmeds247-color-disabled-text);
  color: var(--ukmeds247-color-disabled-text);
  cursor: not-allowed;
}

.ukmeds247-transaction .ukmeds247-transaction-hero h1 {
  margin-block: 0;
}

.ukmeds247-account-guest-route {
  margin-block: 0 var(--ukmeds247-space-5);
}

.ukmeds247-transaction-path[hidden] {
  display: none;
}

:where(.ukmeds247-transaction-hero) {
  background: var(--ukmeds247-color-info-surface);
  border-block-end: var(--ukmeds247-border-width) solid var(--ukmeds247-color-border);
  padding-block: var(--ukmeds247-space-6);
}

:where(.ukmeds247-transaction-hero h1, .ukmeds247-transaction-hero p) {
  margin-block: 0;
}

:where(.ukmeds247-transaction-hero h1) {
  font-size: var(--ukmeds247-font-size-2xl);
  letter-spacing: var(--ukmeds247-letter-spacing-tight);
  line-height: var(--ukmeds247-line-height-tight);
  max-inline-size: 24ch;
}

:where(.ukmeds247-transaction-hero p:last-child) {
  color: var(--ukmeds247-color-text-muted);
  font-size: var(--ukmeds247-font-size-lg);
  max-inline-size: var(--ukmeds247-width-prose);
}

:where(.ukmeds247-transaction--complete .ukmeds247-transaction-hero) {
  background: var(--ukmeds247-color-success-surface);
  border-block-end-color: var(--ukmeds247-color-success);
}

:where(.ukmeds247-transaction-path) {
  inline-size: min(100%, 42rem);
}

:where(.ukmeds247-transaction-path ol) {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  list-style: none;
  margin: 0;
  padding: 0;
}

:where(.ukmeds247-transaction-path li) {
  align-items: start;
  color: var(--ukmeds247-color-text-muted);
  display: grid;
  font-size: var(--ukmeds247-font-size-sm);
  gap: var(--ukmeds247-space-2);
  grid-template-columns: var(--ukmeds247-space-6) minmax(0, 1fr);
  min-inline-size: 0;
  position: relative;
}

:where(.ukmeds247-transaction-path li:not(:last-child))::after {
  background: var(--ukmeds247-color-border);
  block-size: var(--ukmeds247-border-width);
  content: "";
  inline-size: calc(100% - var(--ukmeds247-space-7));
  inset-block-start: calc(var(--ukmeds247-space-6) / 2);
  inset-inline-start: calc(var(--ukmeds247-space-6) + var(--ukmeds247-space-2));
  position: absolute;
}

:where(.ukmeds247-transaction-path__marker) {
  align-items: center;
  background: var(--ukmeds247-color-background);
  border: var(--ukmeds247-border-width) solid var(--ukmeds247-color-border);
  border-radius: var(--ukmeds247-radius-pill);
  block-size: var(--ukmeds247-space-6);
  color: var(--ukmeds247-color-text-muted);
  display: inline-flex;
  font-variant-numeric: tabular-nums;
  font-weight: var(--ukmeds247-font-weight-semibold);
  inline-size: var(--ukmeds247-space-6);
  justify-content: center;
  position: relative;
  z-index: 1;
}

:where(.ukmeds247-transaction-path .is-complete, .ukmeds247-transaction-path .is-current) {
  color: var(--ukmeds247-color-text);
  font-weight: var(--ukmeds247-font-weight-semibold);
}

:where(.ukmeds247-transaction-path .is-complete .ukmeds247-transaction-path__marker) {
  background: var(--ukmeds247-color-brand-accent);
  border-color: var(--ukmeds247-color-brand-accent);
  color: var(--ukmeds247-color-text-inverse);
}

:where(.ukmeds247-transaction-path .is-current .ukmeds247-transaction-path__marker) {
  background: var(--ukmeds247-color-brand-primary);
  border-color: var(--ukmeds247-color-brand-primary);
  color: var(--ukmeds247-color-text-inverse);
}

:where(.ukmeds247-transaction__content) {
  min-inline-size: 0;
}

:where(.ukmeds247-empty-basket) {
  background: var(--ukmeds247-color-surface);
  border: var(--ukmeds247-border-width) solid var(--ukmeds247-color-border);
  border-radius: var(--ukmeds247-radius-md);
  display: grid;
  gap: var(--ukmeds247-space-3);
  inline-size: min(100%, 42rem);
  justify-items: start;
  padding: var(--ukmeds247-space-5);
}

:where(.ukmeds247-empty-basket h2, .ukmeds247-empty-basket p) {
  margin: 0;
}

:where(.ukmeds247-account-switcher) {
  background: var(--ukmeds247-color-surface-strong);
  border: var(--ukmeds247-border-width) solid var(--ukmeds247-color-border);
  border-radius: var(--ukmeds247-radius-md);
  display: grid;
  gap: var(--ukmeds247-space-1);
  grid-template-columns: repeat(2, minmax(0, 1fr));
  inline-size: min(100%, var(--ukmeds247-width-prose));
  margin-block-end: var(--ukmeds247-space-4);
  margin-inline: auto;
  padding: var(--ukmeds247-space-1);
}

:where(.ukmeds247-account-switcher[hidden]) {
  display: none;
}

:where(.ukmeds247-account-switcher__tab) {
  align-items: center;
  background: transparent;
  border: 0;
  border-radius: var(--ukmeds247-radius-sm);
  color: var(--ukmeds247-color-text);
  display: inline-flex;
  font-weight: var(--ukmeds247-font-weight-semibold);
  justify-content: center;
  min-block-size: var(--ukmeds247-touch-target);
  padding: var(--ukmeds247-space-2) var(--ukmeds247-space-3);
  text-align: center;
}

:where(.ukmeds247-account-switcher__tab[aria-selected="true"]) {
  background: var(--ukmeds247-color-background);
  box-shadow: var(--ukmeds247-shadow-sm);
  color: var(--ukmeds247-color-brand-primary);
}

:where(.ukmeds247-transaction--account #customer_login > [hidden]) {
  display: none;
}

:where(.ukmeds247-transaction--cart, .ukmeds247-transaction--checkout, .ukmeds247-transaction--account) .ukmeds247-section > .woocommerce {
  inline-size: 100%;
  max-inline-size: 100%;
}

:where(.ukmeds247-transaction--account:not(.logged-in) .woocommerce-form-login, .ukmeds247-transaction--account:not(.logged-in) .woocommerce-form-register) {
  inline-size: min(100%, var(--ukmeds247-width-prose));
  min-inline-size: 0;
  margin-inline: auto;
  background: var(--ukmeds247-color-surface);
  border: var(--ukmeds247-border-width) solid var(--ukmeds247-color-border);
  border-radius: var(--ukmeds247-radius-md);
  box-shadow: var(--ukmeds247-shadow-sm);
  padding: var(--ukmeds247-space-5);
}

:where(.ukmeds247-transaction--account:not(.logged-in) .woocommerce-form-login label, .ukmeds247-transaction--account:not(.logged-in) .woocommerce-form-register label) {
  overflow-wrap: normal;
  word-break: normal;
}

/*
 * WooCommerce creates the registration password-strength meter only when the
 * password field loses focus. Reserve the same block space beforehand so a
 * pointer press on the following consent checkbox cannot move the checkbox
 * away before pointer release and silently cancel its native checked state.
 */
:where(form.woocommerce-form-register .form-row:has(#reg_password)) {
  position: relative;
}

:where(form.woocommerce-form-register .form-row:has(#reg_password))::after {
  content: "";
  display: block;
  min-block-size: 3rem;
}

:where(form.woocommerce-form-register .form-row:has(#reg_password) .woocommerce-password-strength) {
  position: absolute;
  inset-block-end: 0;
  inset-inline: 0;
  margin: 0;
}

:where(.woocommerce-cart-form, form.woocommerce-checkout, .woocommerce-MyAccount-content, .woocommerce-order) {
  display: grid;
  min-inline-size: 0;
  max-inline-size: 100%;
  gap: var(--ukmeds247-space-6);
}

:where(.ukmeds247-transaction h1) {
  margin-block: 0 var(--ukmeds247-space-6);
}

:where(.ukmeds247-transaction--cart .cart-collaterals .cart_totals) {
  float: none;
  inline-size: min(100%, 32rem);
  margin-inline-start: auto;
}

:where(.ukmeds247-transaction--checkout .col2-set, .ukmeds247-transaction--account .u-columns) {
  display: grid;
  gap: var(--ukmeds247-space-5);
}

:where(.ukmeds247-transaction--checkout .col2-set .col-1, .ukmeds247-transaction--checkout .col2-set .col-2, .ukmeds247-transaction--account .u-column1, .ukmeds247-transaction--account .u-column2) {
  float: none;
  inline-size: 100%;
  min-inline-size: 0;
}

:where(.ukmeds247-transaction, .ukmeds247-transaction .woocommerce, .woocommerce .cart-collaterals) {
  min-inline-size: 0;
  max-inline-size: 100%;
  overflow-wrap: anywhere;
}

:where(.woocommerce table.shop_table) {
  inline-size: 100%;
  max-inline-size: 100%;
  border: var(--ukmeds247-border-width) solid var(--ukmeds247-color-border);
  border-radius: var(--ukmeds247-radius-md);
  border-collapse: separate;
  border-spacing: 0;
  overflow: hidden;
}

:where(.woocommerce table.shop_table th, .woocommerce table.shop_table td) {
  padding: var(--ukmeds247-space-3);
  text-align: start;
  vertical-align: top;
}

:where(.woocommerce form .form-row) {
  display: grid;
  gap: var(--ukmeds247-space-2);
  margin-block-end: var(--ukmeds247-space-4);
}

:where(.woocommerce form .required) {
  color: var(--ukmeds247-color-error);
  text-decoration: none;
}

:where(.woocommerce-form__label-for-checkbox, .woocommerce-terms-and-conditions-checkbox-text) {
  min-block-size: var(--ukmeds247-touch-target);
}

:where(label.woocommerce-form__label-for-checkbox) {
  display: inline-flex;
  align-items: center;
  gap: var(--ukmeds247-space-2);
  cursor: pointer;
}

:where(.woocommerce-form__input-checkbox, .woocommerce input[type="checkbox"]) {
  inline-size: 1.25rem;
  block-size: 1.25rem;
  flex: 0 0 auto;
}

:where(.woocommerce-invalid) :where(input, select, textarea) {
  border-color: var(--ukmeds247-color-error);
}

:where(.woocommerce-error, .woocommerce-message, .woocommerce-info) {
  border-radius: var(--ukmeds247-radius-md);
  padding: var(--ukmeds247-space-4);
}

:where(.woocommerce-info:only-child) {
  border: var(--ukmeds247-border-width) solid var(--ukmeds247-color-border);
  min-block-size: calc(var(--ukmeds247-touch-target) * 2);
}

:where(.woocommerce-error) {
  color: var(--ukmeds247-color-error);
  background: var(--ukmeds247-color-error-surface);
}

:where(.woocommerce-message) {
  color: var(--ukmeds247-color-success);
  background: var(--ukmeds247-color-success-surface);
}

/* Keep notice actions readable when the parent theme supplies a bright success button. */
.woocommerce :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) a.button {
  background: var(--ukmeds247-color-brand-primary);
  color: var(--ukmeds247-color-text-inverse);
}

.woocommerce :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) a.button:hover,
.woocommerce :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) a.button:focus-visible {
  background: var(--ukmeds247-color-brand-primary-hover);
  color: var(--ukmeds247-color-text-inverse);
}

@media (max-width: 40rem) {
  .woocommerce :is(.woocommerce-message, .woocommerce-info):has(a.button) {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: var(--ukmeds247-space-3);
  }

  .woocommerce :is(.woocommerce-message, .woocommerce-info) a.button {
    float: none;
    flex: none;
    inline-size: 100%;
    margin: 0;
    order: 1;
    overflow-wrap: normal;
    word-break: normal;
  }
}

:where(.woocommerce-info) {
  color: var(--ukmeds247-color-info);
  background: var(--ukmeds247-color-info-surface);
}

:where(.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .ukmeds247-transaction-action button) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-inline-size: var(--ukmeds247-touch-target);
  min-block-size: var(--ukmeds247-touch-target);
}

:where(.woocommerce a.remove) {
  display: inline-flex;
  inline-size: var(--ukmeds247-touch-target);
  block-size: var(--ukmeds247-touch-target);
  align-items: center;
  justify-content: center;
}

.woocommerce .woocommerce-cart-form a.remove {
  display: inline-flex;
  inline-size: var(--ukmeds247-touch-target);
  block-size: var(--ukmeds247-touch-target);
  align-items: center;
  justify-content: center;
}

.woocommerce .woocommerce-cart-form button.button {
  min-block-size: var(--ukmeds247-touch-target);
}

:where(.woocommerce .quantity .qty) {
  min-inline-size: var(--ukmeds247-touch-target);
  min-block-size: var(--ukmeds247-touch-target);
}

:where(.woocommerce .show-password-input) {
  min-inline-size: var(--ukmeds247-touch-target);
  min-block-size: var(--ukmeds247-touch-target);
}

:where(.woocommerce-MyAccount-navigation ul) {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ukmeds247-space-2);
  padding: 0;
  list-style: none;
}

:where(.woocommerce-MyAccount-navigation) {
  background: var(--ukmeds247-color-surface);
  border: var(--ukmeds247-border-width) solid var(--ukmeds247-color-border);
  border-radius: var(--ukmeds247-radius-lg);
  padding: var(--ukmeds247-space-3);
}

:where(.woocommerce-MyAccount-navigation a) {
  display: inline-flex;
  min-block-size: var(--ukmeds247-touch-target);
  align-items: center;
  padding-inline: var(--ukmeds247-space-3);
  border-radius: var(--ukmeds247-radius-md);
  text-decoration: none;
}

:where(.woocommerce-MyAccount-navigation .is-active a) {
  background: var(--ukmeds247-color-brand-primary);
  color: var(--ukmeds247-color-text-inverse);
  font-weight: var(--ukmeds247-font-weight-semibold);
}

.ukmeds247-transaction--account .woocommerce-MyAccount-navigation,
.ukmeds247-transaction--account .woocommerce-MyAccount-content {
  float: none;
  inline-size: 100%;
  min-inline-size: 0;
}

.ukmeds247-transaction--account .ukmeds247-section > .woocommerce {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
}

:where(.woocommerce-MyAccount-content) {
  background: var(--ukmeds247-color-background);
  border: var(--ukmeds247-border-width) solid var(--ukmeds247-color-border);
  border-radius: var(--ukmeds247-radius-lg);
  padding: var(--ukmeds247-space-5);
}

:where(#ukm247-order-timeline + ol) {
  border-inline-start: var(--ukmeds247-border-width-strong) solid var(--ukmeds247-color-brand-primary);
  display: grid;
  gap: var(--ukmeds247-space-4);
  list-style: none;
  margin-inline-start: var(--ukmeds247-space-3);
  padding-inline-start: var(--ukmeds247-space-5);
}

:where(#ukm247-order-timeline + ol > li) {
  min-block-size: var(--ukmeds247-touch-target);
  position: relative;
}

:where(#ukm247-order-timeline + ol > li)::before {
  background: var(--ukmeds247-color-brand-accent);
  border: var(--ukmeds247-border-width-strong) solid var(--ukmeds247-color-background);
  border-radius: var(--ukmeds247-radius-pill);
  content: "";
  inset-block-start: var(--ukmeds247-space-1);
  inset-inline-start: calc((var(--ukmeds247-space-5) + var(--ukmeds247-border-width-strong)) * -1);
  min-block-size: var(--ukmeds247-space-3);
  min-inline-size: var(--ukmeds247-space-3);
  position: absolute;
}

:where(.ukmeds247-transaction-action) {
  max-inline-size: var(--ukmeds247-width-prose);
  padding: var(--ukmeds247-space-5);
  border: var(--ukmeds247-border-width) solid var(--ukmeds247-color-border);
  border-radius: var(--ukmeds247-radius-md);
  background: var(--ukmeds247-color-surface);
}

:where(.ukm247-order-support, .ukm247-support-thread, .ukm247-support-form) {
  min-inline-size: 0;
  max-inline-size: 100%;
}

:where(.ukm247-support-form) {
  inline-size: min(100%, var(--ukmeds247-width-prose));
}

:where(.ukm247-support-form input:not([type="hidden"]), .ukm247-support-form textarea) {
  inline-size: 100%;
  min-inline-size: 0;
}

:where(.ukm247-support-form textarea) {
  min-block-size: calc(var(--ukmeds247-touch-target) * 3);
}

:where(.ukm247-support-form label) {
  overflow-wrap: normal;
  word-break: normal;
}

:where(.ukm247-communications, .ukm247-communications__list, .ukm247-communication) {
  min-inline-size: 0;
  max-inline-size: 100%;
}

:where(.ukm247-communications__list) {
  padding: 0;
  list-style: none;
}

:where(.ukm247-communication) {
  overflow-wrap: anywhere;
}

:where(.ukm247-communication__summary) {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 10rem), 1fr));
  gap: var(--ukmeds247-space-4);
  margin: 0 0 var(--ukmeds247-space-4);
}

:where(.ukm247-communication__summary div) {
  min-inline-size: 0;
}

:where(.ukm247-communication__summary dt) {
  font-weight: var(--ukmeds247-font-weight-semibold);
}

:where(.ukm247-communication__summary dd) {
  margin: 0;
}

:where(.ukm247-communication details summary) {
  min-block-size: var(--ukmeds247-touch-target);
  cursor: pointer;
}

:where(.ukm247-guest-access, .ukm247-guest-access__form) {
  inline-size: min(100%, var(--ukmeds247-width-prose));
  min-inline-size: 0;
}

:where(.ukm247-guest-access__form input) {
  inline-size: 100%;
  min-inline-size: 0;
}

:where(.ukm247-guest-access__form label) {
  overflow-wrap: normal;
  word-break: normal;
}

:where(.ukm247-guest-summary) {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 10rem), 1fr));
  gap: var(--ukmeds247-space-4);
  margin: 0;
}

:where(.ukm247-guest-summary div) {
  min-inline-size: 0;
}

:where(.ukm247-guest-summary dt) {
  font-weight: var(--ukmeds247-font-weight-semibold);
}

:where(.ukm247-guest-summary dd) {
  margin: 0;
}

@media (max-width: 63.999rem) {
  :where(.woocommerce table.shop_table_responsive thead) {
    position: absolute;
    inline-size: 1px;
    block-size: 1px;
    overflow: hidden;
    clip-path: inset(50%);
  }

  :where(.woocommerce table.shop_table_responsive tr) {
    display: grid;
    min-inline-size: 0;
    gap: var(--ukmeds247-space-2);
    padding: var(--ukmeds247-space-3);
    border-block-end: var(--ukmeds247-border-width) solid var(--ukmeds247-color-border);
  }

  :where(.woocommerce table.shop_table_responsive td) {
    display: grid;
    min-inline-size: 0;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--ukmeds247-space-3);
  }

  :where(.woocommerce table.shop_table_responsive td::before) {
    min-inline-size: 0;
  }

  :where(.woocommerce .coupon) {
    display: grid;
    min-inline-size: 0;
    gap: var(--ukmeds247-space-2);
  }

  :where(.woocommerce .coupon input) {
    inline-size: 100%;
    min-inline-size: 0;
  }

  :where(.woocommerce table.shop_table_responsive td::before) {
    font-weight: var(--ukmeds247-font-weight-semibold);
    content: attr(data-title);
  }
}

@media (min-width: 64rem) {
  .ukmeds247-transaction--account.logged-in .ukmeds247-section > .woocommerce {
    align-items: start;
    gap: var(--ukmeds247-space-6);
    grid-template-columns: minmax(13rem, 1fr) minmax(0, 3fr);
  }

  :where(.ukmeds247-transaction--account.logged-in .woocommerce-MyAccount-navigation ul) {
    align-items: stretch;
    flex-direction: column;
  }

  :where(.ukmeds247-transaction--account.logged-in .woocommerce-MyAccount-navigation a) {
    inline-size: 100%;
  }
}

/*
 * Bricks' unlayered WooCommerce rules otherwise retain two compressed account
 * columns and a checkout sidebar at tablet widths. These selectors deliberately
 * match that integration boundary without altering WooCommerce behaviour.
 */
.ukmeds247-transaction--account:not(.logged-in) #customer_login.col2-set {
  display: grid;
  gap: var(--ukmeds247-space-5);
  grid-template-columns: minmax(0, 1fr);
  min-inline-size: 0;
}

.ukmeds247-transaction--account:not(.logged-in) #customer_login > .u-column1,
.ukmeds247-transaction--account:not(.logged-in) #customer_login > .u-column2 {
  float: none;
  inline-size: 100%;
  min-inline-size: 0;
}

.ukmeds247-transaction--checkout form.woocommerce-checkout,
.ukmeds247-transaction--checkout form.woocommerce-checkout.bricks-default-checkout {
  align-items: start;
  display: grid;
  gap: var(--ukmeds247-space-6);
  grid-template-columns: minmax(0, 1fr);
  min-inline-size: 0;
}

.ukmeds247-transaction--checkout form.woocommerce-checkout > #customer_details,
.ukmeds247-transaction--checkout form.woocommerce-checkout > #order_review_heading,
.ukmeds247-transaction--checkout form.woocommerce-checkout > #order_review {
  grid-column: 1;
  min-inline-size: 0;
}

.ukmeds247-transaction--checkout #customer_details,
.ukmeds247-transaction--checkout #order_review {
  align-content: start;
}

:where(
  .ukmeds247-transaction--checkout .woocommerce-form-login-toggle .woocommerce-info,
  .ukmeds247-transaction--checkout .woocommerce-form-coupon-toggle .woocommerce-info
) {
  align-items: center;
  display: flex;
  gap: var(--ukmeds247-space-3);
  justify-content: space-between;
  min-block-size: var(--ukmeds247-touch-target);
}

:where(
  .ukmeds247-transaction--checkout .woocommerce-form-login-toggle .woocommerce-info a,
  .ukmeds247-transaction--checkout .woocommerce-form-coupon-toggle .woocommerce-info a
) {
  align-items: center;
  display: inline-flex;
  flex: 0 1 auto;
  min-block-size: var(--ukmeds247-touch-target);
  text-align: end;
}

.ukmeds247-transaction--checkout #customer_details h3,
.ukmeds247-transaction--checkout #order_review_heading,
.ukmeds247-transaction--checkout .ukmeds247-checkout-section-heading {
  border-block-start: var(--ukmeds247-border-width) solid var(--ukmeds247-color-border);
  font-size: var(--ukmeds247-font-size-xl);
  margin-block: 0 var(--ukmeds247-space-4);
  padding-block-start: var(--ukmeds247-space-3);
}

.ukmeds247-transaction--checkout .ukmeds247-checkout-section-heading--payment {
  align-items: center;
  display: flex;
  gap: var(--ukmeds247-space-2);
  margin-block-start: var(--ukmeds247-space-6);
}

.ukmeds247-transaction--checkout .ukmeds247-checkout-section-heading--payment > span {
  align-items: center;
  background: var(--ukmeds247-color-brand-primary);
  border-radius: var(--ukmeds247-radius-pill);
  block-size: var(--ukmeds247-space-6);
  color: var(--ukmeds247-color-text-inverse);
  display: inline-flex;
  font-size: var(--ukmeds247-font-size-sm);
  inline-size: var(--ukmeds247-space-6);
  justify-content: center;
}

.ukmeds247-transaction--complete .woocommerce-notice--success {
  background: var(--ukmeds247-color-success-surface);
  border: var(--ukmeds247-border-width) solid var(--ukmeds247-color-success);
  border-radius: var(--ukmeds247-radius-md);
  color: var(--ukmeds247-color-success);
  font-size: var(--ukmeds247-font-size-lg);
  font-weight: var(--ukmeds247-font-weight-semibold);
  margin-block: 0;
  padding: var(--ukmeds247-space-4);
}

:where(.ukmeds247-transaction--complete .woocommerce-form-login) {
  background: var(--ukmeds247-color-surface);
  border: var(--ukmeds247-border-width) solid var(--ukmeds247-color-border);
  border-radius: var(--ukmeds247-radius-md);
  display: grid;
  gap: var(--ukmeds247-space-3);
  inline-size: min(100%, 40rem);
  margin: 0;
  padding: var(--ukmeds247-space-5);
}

:where(
  .ukmeds247-transaction--complete .woocommerce-form-login .form-row-first,
  .ukmeds247-transaction--complete .woocommerce-form-login .form-row-last
) {
  float: none;
  inline-size: 100%;
}

:where(.ukmeds247-transaction--complete .woocommerce-form-login .woocommerce-form-login__submit) {
  inline-size: fit-content;
  min-inline-size: 10rem;
}

.ukmeds247-transaction--complete .woocommerce-order-overview {
  background: var(--ukmeds247-color-surface);
  border-block: var(--ukmeds247-border-width) solid var(--ukmeds247-color-border);
  display: grid;
  gap: var(--ukmeds247-space-3);
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr));
  margin: 0;
  padding: var(--ukmeds247-space-4) 0;
}

.ukmeds247-transaction--checkout #customer_details.col2-set {
  display: grid;
  gap: var(--ukmeds247-space-5);
  grid-template-columns: minmax(0, 1fr);
}

.woocommerce .ukmeds247-delivery-summary {
  display: grid;
  gap: var(--ukmeds247-space-1);
  grid-template-columns: minmax(0, 1fr);
  justify-content: start;
  overflow-wrap: normal;
  word-break: normal;
}

.woocommerce .ukmeds247-delivery-summary strong,
.woocommerce .ukmeds247-delivery-summary span {
  min-inline-size: 0;
  overflow-wrap: normal;
  word-break: normal;
}

@media (max-width: 71.999rem) {
  .ukmeds247-transaction--cart .woocommerce .cart-collaterals,
  .ukmeds247-transaction--cart .cart-collaterals {
    float: none;
    inline-size: 100%;
    margin: 0;
  }

  .ukmeds247-transaction--cart .cart-collaterals .cart_totals,
  .ukmeds247-transaction--cart .woocommerce .cart-collaterals .cart_totals {
    float: none;
    inline-size: 100%;
    margin: 0;
  }
}

@media (max-width: 63.999rem) {
  .ukmeds247-transaction--cart .woocommerce-cart-form table.shop_table_responsive {
    display: block;
    overflow: visible;
  }

  .ukmeds247-transaction--cart .woocommerce-cart-form table.shop_table_responsive > tbody {
    display: grid;
    gap: var(--ukmeds247-space-3);
  }

  .ukmeds247-transaction--cart .woocommerce-cart-form table.shop_table_responsive tr.woocommerce-cart-form__cart-item {
    background: var(--ukmeds247-color-background);
    border: var(--ukmeds247-border-width) solid var(--ukmeds247-color-border);
    border-radius: var(--ukmeds247-radius-md);
    display: grid;
    gap: var(--ukmeds247-space-2) var(--ukmeds247-space-4);
    grid-template-areas:
      "thumbnail name remove"
      "thumbnail price price"
      "thumbnail quantity subtotal";
    grid-template-columns: clamp(5.5rem, 13vw, 6.875rem) minmax(0, 1fr) max-content;
    min-inline-size: 0;
    padding: var(--ukmeds247-space-4);
  }

  .ukmeds247-transaction--cart .woocommerce-cart-form table.shop_table_responsive tr:not(.woocommerce-cart-form__cart-item) {
    display: block;
    min-inline-size: 0;
    padding: var(--ukmeds247-space-3);
  }

  .ukmeds247-transaction--cart .woocommerce-cart-form table.shop_table_responsive tr.woocommerce-cart-form__cart-item > :is(td, th) {
    border: 0;
    min-inline-size: 0;
    padding: 0;
    text-align: start;
  }

  .ukmeds247-transaction--cart .woocommerce-cart-form table.shop_table_responsive td.product-thumbnail {
    display: block;
    grid-area: thumbnail;
  }

  .ukmeds247-transaction--cart .woocommerce-cart-form table.shop_table_responsive td.product-thumbnail::before,
  .ukmeds247-transaction--cart .woocommerce-cart-form table.shop_table_responsive .product-name::before,
  .ukmeds247-transaction--cart .woocommerce-cart-form table.shop_table_responsive td.product-remove::before {
    content: none;
  }

  .ukmeds247-transaction--cart .woocommerce-cart-form table.shop_table_responsive td.product-thumbnail img {
    aspect-ratio: 1;
    background: var(--ukmeds247-color-surface-strong);
    border: var(--ukmeds247-border-width) solid var(--ukmeds247-color-border);
    border-radius: var(--ukmeds247-radius-sm);
    block-size: auto;
    display: block;
    inline-size: 100%;
    object-fit: contain;
  }

  .ukmeds247-transaction--cart .woocommerce-cart-form table.shop_table_responsive .product-name {
    align-self: start;
    display: block;
    font-weight: var(--ukmeds247-font-weight-semibold);
    grid-area: name;
  }

  .ukmeds247-transaction--cart .woocommerce-cart-form table.shop_table_responsive .product-name dl.variation {
    display: grid;
    font-size: var(--ukmeds247-font-size-sm);
    gap: var(--ukmeds247-space-1) var(--ukmeds247-space-2);
    grid-template-columns: minmax(0, 1fr) max-content;
    margin-block: var(--ukmeds247-space-1) 0;
  }

  .ukmeds247-transaction--cart .woocommerce-cart-form table.shop_table_responsive .product-name dl.variation dd,
  .ukmeds247-transaction--cart .woocommerce-cart-form table.shop_table_responsive .product-name dl.variation dt,
  .ukmeds247-transaction--cart .woocommerce-cart-form table.shop_table_responsive .product-name dl.variation p {
    margin: 0;
  }

  .ukmeds247-transaction--cart .woocommerce-cart-form table.shop_table_responsive td.product-remove {
    align-self: start;
    display: block;
    grid-area: remove;
    justify-self: end;
  }

  .ukmeds247-transaction--cart .woocommerce-cart-form table.shop_table_responsive td.product-price,
  .ukmeds247-transaction--cart .woocommerce-cart-form table.shop_table_responsive td.product-quantity,
  .ukmeds247-transaction--cart .woocommerce-cart-form table.shop_table_responsive td.product-subtotal {
    align-items: center;
    display: flex;
    gap: var(--ukmeds247-space-2);
  }

  .ukmeds247-transaction--cart .woocommerce-cart-form table.shop_table_responsive td.product-price {
    grid-area: price;
  }

  .ukmeds247-transaction--cart .woocommerce-cart-form table.shop_table_responsive td.product-quantity {
    grid-area: quantity;
  }

  .ukmeds247-transaction--cart .woocommerce-cart-form table.shop_table_responsive td.product-subtotal {
    align-items: flex-end;
    flex-direction: column;
    font-weight: var(--ukmeds247-font-weight-semibold);
    gap: 0;
    grid-area: subtotal;
    justify-content: center;
    white-space: nowrap;
  }

  .ukmeds247-transaction--cart .woocommerce-cart-form table.shop_table_responsive td.product-price::before,
  .ukmeds247-transaction--cart .woocommerce-cart-form table.shop_table_responsive td.product-quantity::before,
  .ukmeds247-transaction--cart .woocommerce-cart-form table.shop_table_responsive td.product-subtotal::before {
    min-inline-size: 0;
    overflow-wrap: normal;
    word-break: normal;
  }

  .ukmeds247-transaction--cart .woocommerce-cart-form table.shop_table_responsive td.actions {
    display: block;
    inline-size: 100%;
  }
}

@media (max-width: 47.999rem) {
  :where(.ukmeds247-transaction-hero) {
    padding-block: var(--ukmeds247-space-5);
  }

  :where(.ukmeds247-transaction--empty-cart .ukmeds247-transaction-hero) {
    padding-block: var(--ukmeds247-space-4);
  }

  :where(.ukmeds247-empty-basket) {
    padding: var(--ukmeds247-space-4);
  }

  :where(.ukmeds247-empty-basket .ukmeds247-button) {
    inline-size: 100%;
  }

  :where(.ukmeds247-transaction-path li) {
    font-size: var(--ukmeds247-font-size-xs);
    grid-template-columns: 1fr;
    padding-inline-end: var(--ukmeds247-space-2);
  }

  :where(.ukmeds247-transaction-path li:not(:last-child))::after {
    inline-size: calc(100% - var(--ukmeds247-space-6));
    inset-inline-start: calc(var(--ukmeds247-space-6) + var(--ukmeds247-space-1));
  }

  :where(
    .ukmeds247-transaction--checkout .woocommerce-form-login-toggle .woocommerce-info,
    .ukmeds247-transaction--checkout .woocommerce-form-coupon-toggle .woocommerce-info
  ) {
    align-items: start;
    display: grid;
    gap: var(--ukmeds247-space-1);
    justify-content: stretch;
  }

  :where(
    .ukmeds247-transaction--checkout .woocommerce-form-login-toggle .woocommerce-info a,
    .ukmeds247-transaction--checkout .woocommerce-form-coupon-toggle .woocommerce-info a
  ) {
    text-align: start;
  }

  :where(.ukmeds247-transaction--complete .woocommerce-form-login) {
    padding: var(--ukmeds247-space-4);
  }

  :where(.ukmeds247-transaction--complete .woocommerce-form-login .woocommerce-form-login__submit) {
    inline-size: 100%;
  }
}

@media (max-width: 29.999rem) {
  .ukmeds247-transaction--cart .woocommerce-cart-form table.shop_table_responsive tr.woocommerce-cart-form__cart-item {
    column-gap: var(--ukmeds247-space-3);
    grid-template-columns: 5rem minmax(0, 1fr) max-content;
    padding: var(--ukmeds247-space-3);
  }

  .ukmeds247-transaction--cart .woocommerce-cart-form table.shop_table_responsive td.product-price,
  .ukmeds247-transaction--cart .woocommerce-cart-form table.shop_table_responsive td.product-quantity,
  .ukmeds247-transaction--cart .woocommerce-cart-form table.shop_table_responsive td.product-subtotal {
    flex-wrap: wrap;
  }

  .ukmeds247-transaction--cart .woocommerce-cart-form table.shop_table_responsive td.product-price::before,
  .ukmeds247-transaction--cart .woocommerce-cart-form table.shop_table_responsive td.product-quantity::before,
  .ukmeds247-transaction--cart .woocommerce-cart-form table.shop_table_responsive td.product-subtotal::before {
    font-size: var(--ukmeds247-font-size-sm);
  }
}

@media (max-width: 21.999rem) {
  .ukmeds247-transaction--cart .woocommerce-cart-form table.shop_table_responsive tr.woocommerce-cart-form__cart-item {
    grid-template-areas:
      "thumbnail name remove"
      "thumbnail price price"
      "thumbnail quantity quantity"
      "thumbnail subtotal subtotal";
  }

  .ukmeds247-transaction--cart .woocommerce-cart-form table.shop_table_responsive td.product-subtotal {
    align-items: flex-start;
  }
}

.woocommerce-mini-cart-item img {
  aspect-ratio: 1;
  block-size: 4rem;
  inline-size: 4rem;
  object-fit: contain;
}

@media (min-width: 64rem) {
  .ukmeds247-transaction--account:not(.logged-in) #customer_login.col2-set {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .ukmeds247-transaction--account:not(.logged-in) #customer_login > .u-column1 {
    grid-column: 1;
    grid-row: 1;
  }

  .ukmeds247-transaction--account:not(.logged-in) #customer_login > .u-column2 {
    grid-column: 2;
    grid-row: 1;
  }
}

@media (min-width: 72rem) {
  .ukmeds247-transaction--checkout form.woocommerce-checkout,
  .ukmeds247-transaction--checkout form.woocommerce-checkout.bricks-default-checkout {
    grid-template-columns: minmax(0, 1.15fr) minmax(22rem, 0.85fr);
  }

  .ukmeds247-transaction--checkout form.woocommerce-checkout > #customer_details {
    grid-column: 1;
    grid-row: 1 / span 2;
  }

  .ukmeds247-transaction--checkout form.woocommerce-checkout > #order_review_heading {
    grid-column: 2;
    grid-row: 1;
  }

  .ukmeds247-transaction--checkout form.woocommerce-checkout > #order_review {
    grid-column: 2;
    grid-row: 2;
  }
}


/* Stable project-owned transaction states; these do not depend on body classes. */
.ukmeds247-transaction--cart .cart_totals th {
  min-inline-size: 7rem;
  overflow-wrap: normal;
  white-space: nowrap;
  word-break: normal;
}

main.ukmeds247-transaction--cart .woocommerce .cart-collaterals .wc-proceed-to-checkout a.checkout-button,
.ukmeds247-transaction--checkout #place_order {
  align-items: center;
  background: var(--ukmeds247-color-brand-primary);
  border: var(--ukmeds247-border-width) solid var(--ukmeds247-color-brand-primary);
  border-radius: var(--ukmeds247-radius-sm);
  color: var(--ukmeds247-color-text-inverse);
  display: inline-flex;
  font-weight: var(--ukmeds247-font-weight-semibold);
  justify-content: center;
  min-block-size: var(--ukmeds247-touch-target);
  text-align: center;
  text-decoration: none;
}

main.ukmeds247-transaction--cart .woocommerce .cart-collaterals .wc-proceed-to-checkout a.checkout-button:hover,
main.ukmeds247-transaction--cart .woocommerce .cart-collaterals .wc-proceed-to-checkout a.checkout-button:focus-visible,
.ukmeds247-transaction--checkout #place_order:hover,
.ukmeds247-transaction--checkout #place_order:focus-visible {
  background: var(--ukmeds247-color-brand-primary-hover);
  border-color: var(--ukmeds247-color-brand-primary-hover);
  color: var(--ukmeds247-color-text-inverse);
}

.ukmeds247-transaction--cart .coupon {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: var(--ukmeds247-space-2);
}

.ukmeds247-transaction--cart .coupon input {
  flex: 1 1 11rem;
  min-inline-size: 0;
}

.ukmeds247-transaction--cart .woocommerce-cart-form .product-thumbnail {
  inline-size: 8rem;
}

.ukmeds247-transaction--cart .woocommerce-cart-form .product-thumbnail .ukmeds247-product-media-fallback {
  aspect-ratio: 1;
  inline-size: 7rem;
  min-block-size: 0;
  padding: var(--ukmeds247-space-2);
}

.ukmeds247-transaction--cart .woocommerce-cart-form .product-thumbnail .ukmeds247-product-media-fallback strong,
.ukmeds247-transaction--cart .woocommerce-cart-form .product-thumbnail .ukmeds247-product-media-fallback span:last-child {
  display: none;
}

.ukmeds247-transaction--cart .woocommerce-cart-form .product-thumbnail .ukmeds247-product-media-fallback__status {
  font-size: var(--ukmeds247-font-size-xs);
  line-height: var(--ukmeds247-line-height-tight);
}

@media (max-width: 63.999rem) {
  .ukmeds247-transaction--cart .woocommerce-cart-form .product-thumbnail,
  .ukmeds247-transaction--cart .woocommerce-cart-form .product-thumbnail .ukmeds247-product-media-fallback {
    inline-size: 100%;
    min-inline-size: 0;
  }

  .ukmeds247-transaction--cart .woocommerce-cart-form .product-thumbnail .ukmeds247-product-media-fallback__status {
    letter-spacing: normal;
    overflow-wrap: anywhere;
    text-transform: none;
  }
}

@media (max-width: 47.999rem) {
  .ukmeds247-transaction--account .woocommerce-MyAccount-content h2,
  .ukmeds247-transaction--account .woocommerce-MyAccount-content h3 {
    font-size: var(--ukmeds247-font-size-xl);
    line-height: var(--ukmeds247-line-height-heading);
  }
}
