/* Native WooCommerce cart, checkout and checkout endpoint presentation. */

body.woocommerce-cart,
body.woocommerce-checkout {
  color: var(--palette-12);
  background: var(--palette-1);
}

.dg-transaction {
  min-height: 100vh;
  overflow: clip;
  background: var(--palette-9);
}

body:not(.home) .dg-transaction#main-content {
  padding-top: 0;
}

.dg-transaction__intro {
  position: relative;
  overflow: hidden;
}

.dg-transaction__intro-layout {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(23rem, .88fr);
  align-items: end;
  gap: var(--space-2xl);
}

.dg-transaction__intro-copy {
  max-width: 50rem;
}

.dg-transaction__steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  padding: 0;
  margin: 0;
  border-top: 1px solid rgb(208 205 197 / 18%);
  list-style: none;
}

.dg-transaction__step {
  position: relative;
  min-width: 0;
  padding: 1rem .8rem 0;
  color: var(--color-muted);
  font-size: var(--text-xs);
  line-height: var(--leading-ui);
}

.dg-transaction__step-content {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: .65rem;
  min-width: 0;
  color: inherit;
  text-decoration: none;
}

.dg-transaction__step-link:hover,
.dg-transaction__step-link:focus-visible {
  color: var(--color-accent-soft);
}

.dg-transaction__step:first-child {
  padding-left: 0;
}

.dg-transaction__step::before {
  position: absolute;
  top: -1px;
  right: 0;
  left: 0;
  height: 2px;
  background: transparent;
  content: "";
}

.dg-transaction__step:first-child::before {
  left: 0;
}

.dg-transaction__step.is-complete,
.dg-transaction__step.is-current {
  color: var(--color-text);
}

.dg-transaction__step.is-complete::before,
.dg-transaction__step.is-current::before {
  background: var(--color-accent-soft);
}

.dg-transaction__step-number {
  display: grid;
  width: 1.8rem;
  height: 1.8rem;
  border: 1px solid rgb(208 205 197 / 25%);
  border-radius: var(--radius-round);
  color: inherit;
  font-size: .7rem;
  font-weight: 700;
  place-items: center;
}

.dg-transaction__step.is-current .dg-transaction__step-number {
  border-color: var(--color-accent-soft);
  color: var(--palette-3);
  background: var(--color-accent-soft);
}

.dg-transaction__step.is-complete .dg-transaction__step-number {
  border-color: color-mix(in srgb, var(--color-accent-soft), transparent 35%);
  color: var(--color-accent-soft);
}

.dg-transaction__step-label {
  overflow: hidden;
  font-weight: 600;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.dg-transaction__body {
  min-height: 28rem;
  padding-block: clamp(2.7rem, 3vw + 1.2rem, 5.5rem) clamp(4.5rem, 6vw, 8rem);
  color: var(--color-text);
  background: var(--color-bg);
}

.dg-transaction__article,
.dg-transaction__commerce {
  min-width: 0;
}

.dg-transaction__commerce {
  color: var(--color-body);
  font-size: var(--text-sm);
  line-height: 1.6;
}

.dg-transaction__commerce a {
  color: var(--color-text);
  text-underline-offset: .2em;
  transition: color var(--duration-fast) var(--ease-standard);
}

.dg-transaction__commerce a:hover {
  color: var(--color-accent);
}

.dg-transaction__commerce :where(p, ul, ol) {
  margin-top: 0;
}

.dg-transaction__commerce :where(h2, h3) {
  color: var(--color-text);
  letter-spacing: -.035em;
}

.dg-transaction__commerce h2 {
  font-size: var(--text-h4);
}

.dg-transaction__commerce h3 {
  font-size: var(--text-h5);
}

/* Notices remain WooCommerce-owned and retain their live regions and links. */
.dg-transaction__commerce :is(
  .woocommerce-notices-wrapper,
  .woocommerce-form-login-toggle,
  .woocommerce-form-coupon-toggle
) {
  grid-column: 1 / -1;
}

.dg-transaction__commerce :is(
  .woocommerce-error,
  .woocommerce-info,
  .woocommerce-message,
  .woocommerce-notice
) {
  position: relative;
  width: 100%;
  padding: 1rem 1.2rem 1rem 1.45rem;
  margin: 0 0 var(--space-md);
  border: 1px solid var(--color-border);
  border-left: 3px solid var(--color-accent);
  border-radius: var(--radius-control);
  color: var(--color-body);
  background: color-mix(in srgb, var(--color-surface), transparent 12%);
  box-shadow: none;
  list-style: none;
}

.dg-transaction__commerce :is(
  .woocommerce-error,
  .woocommerce-info,
  .woocommerce-message,
  .woocommerce-notice
)::before {
  content: none;
}

.dg-transaction__commerce .woocommerce-error {
  border-left-color: var(--palette-12);
}

.dg-transaction__commerce .woocommerce-message {
  border-left-color: var(--color-accent);
}

.dg-transaction__commerce :is(.woocommerce-info, .woocommerce-message) a {
  font-weight: 700;
}

.dg-transaction__commerce :is(.woocommerce-info, .woocommerce-message) .button {
  float: right;
  min-height: auto;
  padding: 0;
  border: 0;
  color: var(--color-text);
  background: transparent;
  text-decoration: underline;
  text-underline-offset: .2em;
}

/* Shared native fields and controls. */
body.woocommerce-page .dg-transaction__commerce :is(
  input.input-text,
  input[type="email"],
  input[type="tel"],
  input[type="text"],
  input[type="password"],
  input[type="number"],
  select,
  textarea
) {
  width: 100%;
  min-height: 3.25rem;
  padding: .82rem .95rem;
  border: 1px solid var(--color-border-strong);
  border-radius: var(--radius-control);
  outline: 0;
  color: var(--color-text);
  background: var(--palette-10);
  box-shadow: inset 0 1px 0 rgb(255 255 255 / 45%);
  transition:
    border-color var(--duration-fast) var(--ease-standard),
    box-shadow var(--duration-fast) var(--ease-standard),
    background var(--duration-fast) var(--ease-standard);
}

body.woocommerce-page .dg-transaction__commerce textarea {
  min-height: 7.5rem;
  resize: vertical;
}

body.woocommerce-page .dg-transaction__commerce :is(
  input.input-text,
  input[type="email"],
  input[type="tel"],
  input[type="text"],
  input[type="password"],
  input[type="number"],
  select,
  textarea
)::placeholder {
  color: var(--color-body);
  opacity: 1;
}

body.woocommerce-page .dg-transaction__commerce :is(
  input.input-text,
  input[type="email"],
  input[type="tel"],
  input[type="text"],
  input[type="password"],
  input[type="number"],
  select,
  textarea
):focus {
  border-color: var(--color-accent);
  background: var(--color-surface-raised);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-accent), transparent 78%);
}

.dg-transaction__commerce .select2-container {
  width: 100% !important;
}

.dg-transaction__commerce .select2-container .select2-selection--single {
  height: 3.25rem;
  border: 1px solid var(--color-border-strong);
  border-radius: var(--radius-control);
  background: var(--palette-10);
}

.dg-transaction__commerce .select2-container .select2-selection--single .select2-selection__rendered {
  padding: .82rem 2.8rem .82rem .95rem;
  color: var(--color-text);
  line-height: 1.55;
}

.dg-transaction__commerce .select2-container .select2-selection--single .select2-selection__arrow {
  top: 50%;
  right: .75rem;
  transform: translateY(-50%);
}

.dg-transaction__commerce .select2-container--open .select2-selection--single,
.dg-transaction__commerce .select2-container--focus .select2-selection--single {
  border-color: var(--color-accent);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-accent), transparent 78%);
}

.dg-transaction__commerce .form-row {
  min-width: 0;
  padding: 0;
  margin: 0 0 var(--space-md);
}

.dg-transaction__commerce .form-row label {
  display: block;
  margin-bottom: .45rem;
  color: var(--color-text);
  font-size: var(--text-xs);
  font-weight: 600;
  line-height: var(--leading-ui);
}

.dg-transaction__commerce .form-row label.checkbox,
.dg-transaction__commerce .form-row label.woocommerce-form__label-for-checkbox {
  display: flex;
  align-items: flex-start;
  gap: .65rem;
  margin-bottom: 0;
  font-size: var(--text-sm);
  line-height: 1.5;
  cursor: pointer;
}

.dg-transaction__commerce :is(input[type="checkbox"], input[type="radio"]) {
  flex: 0 0 auto;
  width: 1.1rem;
  height: 1.1rem;
  margin: .18rem 0 0;
  accent-color: var(--color-accent);
}

.dg-transaction__commerce .required {
  color: var(--color-accent);
  font-weight: 700;
  text-decoration: none;
}

.dg-transaction__commerce .optional {
  color: var(--color-body);
  font-weight: 400;
}

.dg-transaction__commerce .woocommerce-invalid :is(input.input-text, select, textarea),
.dg-transaction__commerce .woocommerce-invalid .select2-selection--single {
  border-color: var(--palette-12);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--palette-12), transparent 78%);
}

.dg-transaction__commerce .woocommerce-validated :is(input.input-text, select, textarea) {
  border-color: color-mix(in srgb, var(--color-accent), var(--color-border-strong) 48%);
}

body.woocommerce-page .dg-transaction__commerce :is(
  button.button,
  a.button,
  input.button
) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 3.25rem;
  padding: .82rem 1.15rem;
  border: 1px solid var(--color-border-strong);
  border-radius: var(--radius-control);
  color: var(--color-text);
  background: transparent;
  box-shadow: none;
  font-size: var(--text-sm);
  font-weight: 700;
  line-height: 1.2;
  text-decoration: none;
  cursor: pointer;
  transition:
    color var(--duration-fast) var(--ease-standard),
    border-color var(--duration-fast) var(--ease-standard),
    background var(--duration-fast) var(--ease-standard),
    transform var(--duration-fast) var(--ease-standard);
}

body.woocommerce-page .dg-transaction__commerce :is(
  button.button,
  a.button,
  input.button
):hover {
  border-color: var(--color-accent);
  color: var(--color-text);
  background: color-mix(in srgb, var(--color-accent), transparent 90%);
  transform: translateY(-1px);
}

body.woocommerce-page .dg-transaction__commerce :is(button.button, input.button):disabled,
body.woocommerce-page .dg-transaction__commerce :is(button.button, input.button).disabled {
  opacity: .42;
  cursor: not-allowed;
  transform: none;
}

body.woocommerce-page .dg-transaction__commerce #place_order,
body.woocommerce-page .dg-transaction__commerce a.checkout-button,
body.woocommerce-page .dg-transaction__commerce button.button.alt,
body.woocommerce-page .dg-transaction__commerce a.button.alt {
  border-color: var(--color-accent) !important;
  color: var(--palette-3) !important;
  background: var(--color-accent) !important;
}

body.woocommerce-page .dg-transaction__commerce #place_order:hover,
body.woocommerce-page .dg-transaction__commerce a.checkout-button:hover,
body.woocommerce-page .dg-transaction__commerce button.button.alt:hover,
body.woocommerce-page .dg-transaction__commerce a.button.alt:hover {
  border-color: var(--palette-15) !important;
  color: var(--palette-3) !important;
  background: var(--color-accent-soft) !important;
}

.dg-transaction__commerce .blockUI.blockOverlay {
  border-radius: inherit;
  background: color-mix(in srgb, var(--palette-9), transparent 20%) !important;
}

/* Cart */
body.woocommerce-cart .dg-transaction__commerce,
body.woocommerce-cart .dg-transaction__commerce > .woocommerce {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(20rem, .55fr);
  align-items: start;
  gap: var(--space-xl);
}

body.woocommerce-cart .dg-transaction__commerce > :not(.woocommerce-cart-form, .cart-collaterals) {
  grid-column: 1 / -1;
}

body.woocommerce-cart .dg-transaction__commerce > .woocommerce > :not(.woocommerce-cart-form, .cart-collaterals) {
  grid-column: 1 / -1;
}

body.woocommerce-cart .woocommerce-cart-form,
body.woocommerce-cart .cart-collaterals {
  min-width: 0;
}

body.woocommerce-cart .cart-collaterals {
  width: auto;
}

body.woocommerce-cart .cart-collaterals .cart_totals {
  position: sticky;
  top: calc(var(--site-header-visible-height, 5rem) + var(--space-md));
  float: none;
  width: 100%;
  padding: var(--space-lg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-card);
  background: var(--color-surface);
  box-shadow: var(--shadow-sm);
}

body.woocommerce-cart .cart-collaterals .cart_totals > h2 {
  padding-bottom: var(--space-md);
  border-bottom: 1px solid var(--color-border);
}

.dg-transaction__commerce table.shop_table {
  width: 100%;
  margin: 0;
  border: 0;
  border-collapse: separate;
  border-spacing: 0;
  border-radius: var(--radius-card);
  background: var(--color-surface);
  box-shadow: inset 0 0 0 1px var(--color-border), var(--shadow-sm);
  overflow: hidden;
}

.dg-transaction__commerce table.shop_table th,
.dg-transaction__commerce table.shop_table td {
  padding: 1rem;
  border: 0;
  border-bottom: 1px solid var(--color-border);
  color: var(--color-body);
  text-align: left;
  vertical-align: middle;
}

.dg-transaction__commerce table.shop_table thead th {
  padding-block: .8rem;
  color: var(--color-body);
  background: color-mix(in srgb, var(--color-surface), var(--palette-11) 18%);
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: .08em;
  line-height: var(--leading-ui);
  text-transform: uppercase;
}

.dg-transaction__commerce table.shop_table tbody tr:last-child td,
.dg-transaction__commerce table.shop_table tfoot tr:last-child :is(th, td) {
  border-bottom: 0;
}

body.woocommerce-cart .woocommerce-cart-form__cart-item .product-remove {
  width: 3.2rem;
  padding-right: .25rem;
  text-align: center;
}

body.woocommerce-cart .woocommerce-cart-form__cart-item .product-thumbnail {
  width: 6.4rem;
  padding-inline: .5rem;
}

body.woocommerce-cart .woocommerce-cart-form__cart-item .product-thumbnail img {
  width: 5rem;
  height: 5rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-control);
  background: var(--palette-9);
  object-fit: contain;
}

body.woocommerce-cart .woocommerce-cart-form__cart-item .product-name {
  min-width: 12rem;
  color: var(--color-text);
  font-weight: 600;
}

body.woocommerce-cart .woocommerce-cart-form__cart-item .product-name a {
  text-decoration: none;
}

.dg-transaction__commerce .variation,
.dg-transaction__commerce .wc-item-meta {
  margin: .4rem 0 0;
  color: var(--color-body);
  font-size: var(--text-xs);
  font-weight: 400;
}

.dg-transaction__commerce .variation :is(dt, dd),
.dg-transaction__commerce .wc-item-meta :is(li, p) {
  display: inline;
  float: none;
  margin: 0 .25rem 0 0;
  padding: 0;
}

body.woocommerce-cart .woocommerce-cart-form__cart-item :is(.product-price, .product-subtotal) {
  white-space: nowrap;
}

.dg-transaction__commerce .amount {
  color: var(--color-text);
  font-weight: 700;
}

body.woocommerce-cart .product-remove a.remove {
  display: grid;
  width: 2.2rem;
  height: 2.2rem;
  margin-inline: auto;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-round);
  color: var(--color-muted) !important;
  background: transparent;
  font-size: 1.25rem;
  font-weight: 400;
  line-height: 1;
  text-decoration: none;
  place-items: center;
}

body.woocommerce-cart .product-remove a.remove:hover,
body.woocommerce-cart .product-remove a.remove:focus-visible {
  border-color: var(--color-accent);
  color: var(--color-text) !important;
  background: color-mix(in srgb, var(--color-accent), transparent 90%);
}

.dg-transaction__commerce .quantity {
  display: inline-flex;
  max-width: 5.5rem;
}

body.woocommerce-page .dg-transaction__commerce .quantity .qty {
  min-height: 2.75rem;
  padding: .55rem .4rem;
  text-align: center;
}

body.woocommerce-cart .woocommerce-cart-form td.actions {
  padding: 1rem;
}

body.woocommerce-cart .woocommerce-cart-form td.actions::after {
  display: block;
  clear: both;
  content: "";
}

body.woocommerce-cart .woocommerce-cart-form .coupon {
  display: flex;
  float: left;
  gap: .6rem;
}

body.woocommerce-cart .woocommerce-cart-form .coupon input.input-text {
  width: min(15rem, 42vw);
}

body.woocommerce-cart .woocommerce-cart-form button[name="update_cart"] {
  float: right;
}

body.woocommerce-cart .cart_totals table.shop_table {
  margin-block: var(--space-md);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

body.woocommerce-cart .cart_totals table.shop_table :is(th, td) {
  padding: .85rem 0;
  background: transparent;
}

body.woocommerce-cart .cart_totals table.shop_table td {
  text-align: right;
}

body.woocommerce-cart .cart_totals .order-total :is(th, td) {
  padding-top: 1.1rem;
  color: var(--color-text);
  font-size: var(--text-body);
}

body.woocommerce-cart .wc-proceed-to-checkout {
  padding: 0;
}

body.woocommerce-cart .wc-proceed-to-checkout .checkout-button {
  width: 100%;
  margin: 0;
  text-align: center;
}

body.woocommerce-cart .woocommerce-shipping-calculator {
  margin-top: .55rem;
}

body.woocommerce-cart .shipping-calculator-form {
  padding-top: var(--space-sm);
}

body.woocommerce-cart .cart-empty {
  max-width: 46rem;
  margin: 0 auto var(--space-lg);
  text-align: center;
}

body.woocommerce-cart .return-to-shop {
  grid-column: 1 / -1;
  margin: 0;
  text-align: center;
}

/* Checkout */
body.woocommerce-checkout .dg-transaction__commerce > .woocommerce-notices-wrapper:empty {
  display: none;
}

body.woocommerce-checkout .woocommerce-form-login-toggle,
body.woocommerce-checkout .woocommerce-form-coupon-toggle {
  max-width: 58rem;
}

body.woocommerce-checkout .woocommerce-form-login,
body.woocommerce-checkout .checkout_coupon {
  max-width: 58rem;
  padding: var(--space-lg);
  margin: calc(-1 * var(--space-sm)) 0 var(--space-lg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-card);
  background: var(--color-surface);
}

body.woocommerce-checkout .checkout_coupon {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: .7rem;
}

body.woocommerce-checkout .checkout_coupon .form-row {
  float: none;
  width: auto;
  margin: 0;
}

body.woocommerce-checkout form.checkout {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(22rem, .92fr);
  grid-template-rows: auto 1fr;
  align-items: start;
  gap: var(--space-md) var(--space-xl);
}

body.woocommerce-checkout form.checkout #customer_details {
  grid-column: 1;
  grid-row: 1 / span 2;
  display: block;
  min-width: 0;
}

body.woocommerce-checkout form.checkout #customer_details > :is(.col-1, .col-2) {
  float: none;
  width: 100%;
}

body.woocommerce-checkout form.checkout #customer_details > .col-1,
body.woocommerce-checkout form.checkout #customer_details > .col-2:not(:empty) {
  padding: var(--space-lg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-card);
  background: var(--color-surface);
  box-shadow: var(--shadow-sm);
}

body.woocommerce-checkout form.checkout #customer_details > .col-2:not(:empty) {
  margin-top: var(--space-lg);
}

body.woocommerce-checkout form.checkout #order_review_heading {
  grid-column: 2;
  grid-row: 1;
  padding: 0 var(--space-lg);
}

body.woocommerce-checkout form.checkout #order_review {
  position: sticky;
  top: calc(var(--site-header-visible-height, 5rem) + var(--space-md));
  grid-column: 2;
  grid-row: 2;
  min-width: 0;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-card);
  background: var(--color-surface);
  box-shadow: var(--shadow-sm);
  overflow: hidden;
}

/* WooCommerce inserts validation errors as the first child of this grid. */
body.woocommerce-checkout form.checkout > .woocommerce-NoticeGroup-checkout {
  grid-column: 1 / -1;
  grid-row: 1;
  scroll-margin-top: calc(var(--site-header-visible-height, 5rem) + var(--space-md));
}

body.woocommerce-checkout form.checkout:has(> .woocommerce-NoticeGroup-checkout) {
  grid-template-rows: auto auto 1fr;
}

body.woocommerce-checkout form.checkout:has(> .woocommerce-NoticeGroup-checkout) #customer_details {
  grid-row: 2 / span 2;
}

body.woocommerce-checkout form.checkout:has(> .woocommerce-NoticeGroup-checkout) #order_review_heading {
  grid-row: 2;
}

body.woocommerce-checkout form.checkout:has(> .woocommerce-NoticeGroup-checkout) #order_review {
  grid-row: 3;
}

body.woocommerce-checkout .woocommerce-billing-fields > h3,
body.woocommerce-checkout .woocommerce-shipping-fields > h3 {
  padding-bottom: var(--space-md);
  margin-bottom: var(--space-lg);
  border-bottom: 1px solid var(--color-border);
}

body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
body.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 var(--space-md);
}

body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper .form-row,
body.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper .form-row {
  float: none;
  width: auto;
}

body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper .form-row-wide,
body.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper .form-row-wide,
body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper .entity-type-control,
body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper .address-field.update_totals_on_change {
  grid-column: 1 / -1;
}

body.woocommerce-checkout #dg_pickup_location_id_field .description,
body.woocommerce-checkout #dg_jmbg_field .description {
  /* Woo toggles an inline display:none on text-field blur. */
  display: block !important;
  margin-top: .6rem;
  padding: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: var(--color-body);
  font-size: var(--text-xs);
  line-height: var(--leading-body);
}

body.woocommerce-checkout #dg_pickup_location_id_field .description::before,
body.woocommerce-checkout #dg_jmbg_field .description::before {
  display: none;
}

body.woocommerce-checkout .entity-type-control .woocommerce-input-wrapper {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: .65rem;
}

body.woocommerce-checkout .entity-type-control .woocommerce-input-wrapper > input[type="radio"] {
  margin: 0;
}

body.woocommerce-checkout .entity-type-control .woocommerce-input-wrapper label {
  display: flex;
  align-items: center;
  gap: .6rem;
  min-height: 3.25rem;
  padding: .75rem .9rem;
  margin: 0;
  border: 1px solid var(--color-border-strong);
  border-radius: var(--radius-control);
  color: var(--color-text);
  background: var(--palette-10);
  cursor: pointer;
}

body.woocommerce-checkout .entity-type-control .woocommerce-input-wrapper input[type="radio"]:checked + label {
  border-color: var(--color-accent);
  background: color-mix(in srgb, var(--color-accent), transparent 89%);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--color-accent), transparent 82%);
}

body.woocommerce-checkout .entity-type-control .woocommerce-input-wrapper input[type="radio"]:focus-visible + label {
  border-color: var(--color-accent);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-accent), transparent 78%);
}

body.woocommerce-checkout .woocommerce-additional-fields {
  margin-top: var(--space-lg);
}

body.woocommerce-checkout .woocommerce-account-fields {
  padding-top: var(--space-md);
  border-top: 1px solid var(--color-border);
}

body.woocommerce-checkout .woocommerce-account-fields .create-account:not(.form-row) {
  padding: var(--space-md);
  border-radius: var(--radius-control);
  background: color-mix(in srgb, var(--color-accent), transparent 92%);
}

body.woocommerce-checkout .woocommerce-checkout-review-order-table {
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

body.woocommerce-checkout .woocommerce-checkout-review-order-table :is(th, td) {
  background: transparent;
}

body.woocommerce-checkout .woocommerce-checkout-review-order-table thead th {
  color: var(--color-body);
  background: color-mix(in srgb, var(--color-surface), var(--palette-11) 18%);
}

body.woocommerce-checkout .woocommerce-checkout-review-order-table .product-total,
body.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot td {
  text-align: right;
}

body.woocommerce-checkout .woocommerce-checkout-review-order-table .product-name {
  color: var(--color-text);
}

body.woocommerce-checkout .woocommerce-checkout-review-order-table .product-quantity {
  color: var(--color-body);
  font-size: var(--text-xs);
  white-space: nowrap;
}

body.woocommerce-checkout .woocommerce-checkout-review-order-table .order-total :is(th, td) {
  padding-block: 1.15rem;
  color: var(--color-text);
  font-size: var(--text-body);
}

body.woocommerce-checkout #payment {
  border-radius: 0;
  background: color-mix(in srgb, var(--color-surface), var(--palette-11) 14%);
}

body.woocommerce-checkout #payment ul.payment_methods {
  padding: var(--space-lg);
  border-bottom: 1px solid var(--color-border);
}

body.woocommerce-checkout #payment ul.payment_methods li {
  margin: 0;
  color: var(--color-text);
}

body.woocommerce-checkout #payment ul.payment_methods li + li {
  padding-top: var(--space-md);
  margin-top: var(--space-md);
  border-top: 1px solid var(--color-border);
}

body.woocommerce-checkout #payment ul.payment_methods li > label {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  font-weight: 700;
  cursor: pointer;
}

body.woocommerce-checkout #payment ul.payment_methods li img {
  max-height: 2rem;
  width: auto;
  margin-left: .55rem;
}

body.woocommerce-checkout #payment div.payment_box {
  position: relative;
  padding: 1rem;
  margin: .85rem 0 0;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-control);
  color: var(--color-body);
  background: var(--palette-10);
  font-size: var(--text-xs);
  line-height: 1.6;
}

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

body.woocommerce-checkout #payment div.payment_box p:last-child {
  margin-bottom: 0;
}

body.woocommerce-checkout #payment .place-order,
body.woocommerce-checkout #payment > .form-row {
  padding: var(--space-lg);
  margin: 0;
}

body.woocommerce-checkout #payment .dg-checkout-cash-note {
  margin: 0 0 var(--space-md);
  padding-left: var(--space-sm);
  border-left: 2px solid var(--color-accent);
  color: var(--color-body);
  font-size: var(--text-xs);
  line-height: var(--leading-body);
}

body.woocommerce-checkout #payment #place_order {
  float: none;
  width: 100%;
  margin-top: var(--space-md);
}

body.woocommerce-checkout .woocommerce-privacy-policy-text,
body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper {
  color: var(--color-body);
  font-size: var(--text-xs);
}

body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper .validate-required {
  margin: 1rem 0 1.5rem;
}

body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper .woocommerce-form__label-for-checkbox {
  display: block;
  line-height: 1.7;
}

body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper #terms {
  width: 1.15rem;
  height: 1.15rem;
  margin: .2rem .55rem .2rem 0;
  vertical-align: middle;
  accent-color: var(--palette-15);
}

body.woocommerce-checkout .woocommerce-terms-and-conditions-checkbox-text a {
  display: inline-block;
  color: var(--palette-15);
  text-decoration: underline;
  text-underline-offset: .2em;
}

body.woocommerce-checkout .woocommerce-terms-and-conditions {
  padding: 1rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-control);
  background: var(--palette-10);
}

/* Pay-for-order and confirmation endpoints share the checkout page. */
body.woocommerce-order-pay .dg-transaction__commerce,
body.woocommerce-order-received .dg-transaction__commerce {
  max-width: 68rem;
  margin-inline: auto;
}

body.woocommerce-order-pay .dg-transaction__commerce form#order_review {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(20rem, .72fr);
  align-items: start;
  gap: var(--space-xl);
}

body.woocommerce-order-pay .dg-transaction__commerce form#order_review > #payment {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-card);
  box-shadow: var(--shadow-sm);
  overflow: hidden;
}

body.woocommerce-order-received .woocommerce-order > :is(
  .woocommerce-notice,
  .woocommerce-thankyou-order-received
) {
  margin-bottom: var(--space-lg);
}

body.woocommerce-order-received .woocommerce-thankyou-order-received {
  color: var(--color-text);
  font-size: var(--text-lead);
  font-weight: 600;
}

body.woocommerce-order-received .woocommerce-order-overview {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
  gap: 0;
  padding: 0;
  margin: 0 0 var(--space-xl);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-card);
  background: var(--color-surface);
  box-shadow: var(--shadow-sm);
  overflow: hidden;
}

body.woocommerce-order-received .woocommerce-order-overview li {
  min-width: 0;
  padding: 1rem;
  margin: 0;
  border: 0;
  border-right: 1px solid var(--color-border);
  color: var(--color-body);
  font-size: var(--text-xs);
  line-height: var(--leading-ui);
  text-transform: none;
}

body.woocommerce-order-received .woocommerce-order-overview li:last-child {
  border-right: 0;
}

body.woocommerce-order-received .woocommerce-order-overview li strong {
  display: block;
  margin-top: .35rem;
  overflow-wrap: anywhere;
  color: var(--color-text);
  font-size: var(--text-sm);
  line-height: 1.4;
}

body.woocommerce-order-received :is(
  .woocommerce-order-details,
  .woocommerce-customer-details,
  .woocommerce-bacs-bank-details,
  .woocommerce-order-payment-slip,
  .woocommerce-order-ips-qr-code,
  .woocommerce-email
) {
  padding: var(--space-lg);
  margin: 0 0 var(--space-lg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-card);
  background: var(--color-surface);
  box-shadow: var(--shadow-sm);
}

body.woocommerce-order-received :is(
  .woocommerce-order-details__title,
  .woocommerce-column__title,
  .wc-bacs-bank-details-heading,
  .woocommerce-order-payment-slip > h2,
  .woocommerce-order-ips-qr-code > h2
) {
  padding-bottom: var(--space-md);
  margin-bottom: var(--space-md);
  border-bottom: 1px solid var(--color-border);
}

body.woocommerce-order-received .woocommerce-customer-details address {
  padding: 0;
  border: 0;
  color: var(--color-body);
  line-height: 1.75;
}

body.woocommerce-order-received .woocommerce-customer-details address p {
  padding-left: 0;
}

body.woocommerce-order-received :is(
  .woocommerce-order-payment-slip,
  .woocommerce-order-ips-qr-code
) {
  overflow-x: auto;
}

body.woocommerce-order-received table.wcsrb-payment-slip {
  width: 100%;
  min-width: 42rem;
  border: 0;
  border-collapse: collapse;
  color: var(--color-text);
}

body.woocommerce-order-received table.wcsrb-payment-slip :is(td, th) {
  border-color: var(--color-border);
}

body.woocommerce-order-received table.wcsrb-payment-slip .block-label {
  color: var(--color-body);
  font-size: var(--text-xs);
  font-weight: 600;
}

body.woocommerce-order-received table.wcsrb-payment-slip .block-content {
  color: var(--color-text);
  background: var(--palette-10);
}

body.woocommerce-order-received table.qr-code {
  width: 100%;
  border-collapse: collapse;
}

body.woocommerce-order-received table.qr-code :is(td, th) {
  padding: var(--space-md);
  border: 1px solid var(--color-border);
  vertical-align: top;
}

body.woocommerce-order-received table.qr-code .qr-code-holder img {
  width: min(14rem, 34vw);
  height: auto;
}

@media (max-width: 70rem) {
  .dg-transaction__intro-layout {
    grid-template-columns: minmax(0, 1fr) minmax(20rem, .72fr);
    gap: var(--space-xl);
  }

  body.woocommerce-cart .dg-transaction__commerce,
  body.woocommerce-cart .dg-transaction__commerce > .woocommerce {
    grid-template-columns: minmax(0, 1.25fr) minmax(18rem, .6fr);
    gap: var(--space-lg);
  }

  body.woocommerce-checkout form.checkout {
    grid-template-columns: minmax(0, 1fr) minmax(20rem, .88fr);
    gap: var(--space-md) var(--space-lg);
  }
}

@media (max-width: 60rem) {
  .dg-transaction__intro-layout {
    grid-template-columns: 1fr;
    gap: var(--space-lg);
  }

  .dg-transaction__steps {
    max-width: 42rem;
  }

  body.woocommerce-cart .dg-transaction__commerce,
  body.woocommerce-cart .dg-transaction__commerce > .woocommerce,
  body.woocommerce-checkout form.checkout,
  body.woocommerce-order-pay .dg-transaction__commerce form#order_review {
    display: block;
  }

  body.woocommerce-cart .cart-collaterals,
  body.woocommerce-checkout form.checkout #order_review_heading,
  body.woocommerce-checkout form.checkout #order_review {
    margin-top: var(--space-xl);
  }

  body.woocommerce-cart .cart-collaterals .cart_totals,
  body.woocommerce-checkout form.checkout #order_review {
    position: static;
  }

  body.woocommerce-checkout form.checkout #order_review_heading {
    padding-inline: 0;
  }

  body.woocommerce-order-pay .dg-transaction__commerce form#order_review > #payment {
    margin-top: var(--space-xl);
  }
}

@media (max-width: 48rem) {
  .dg-transaction__steps {
    grid-template-columns: 1fr;
    gap: .6rem;
    padding-top: var(--space-sm);
    border-top: 1px solid rgb(208 205 197 / 18%);
  }

  .dg-transaction__step,
  .dg-transaction__step:first-child {
    padding: 0;
  }

  .dg-transaction__step::before {
    display: none;
  }

  .dg-transaction__step:not(.is-current) {
    display: none;
  }

  .dg-transaction__step-label {
    white-space: normal;
  }

  .dg-transaction__body {
    padding-top: var(--space-xl);
  }

  body.woocommerce-cart .woocommerce-cart-form table.shop_table_responsive {
    display: block;
    border-radius: var(--radius-card);
  }

  body.woocommerce-cart .woocommerce-cart-form table.shop_table_responsive thead {
    display: none;
  }

  body.woocommerce-cart .woocommerce-cart-form table.shop_table_responsive tbody,
  body.woocommerce-cart .woocommerce-cart-form table.shop_table_responsive tr,
  body.woocommerce-cart .woocommerce-cart-form table.shop_table_responsive td {
    display: block;
    width: 100%;
  }

  body.woocommerce-cart .woocommerce-cart-form table.shop_table_responsive tr.cart_item {
    position: relative;
    display: grid;
    grid-template-columns: 5.2rem minmax(0, 1fr);
    padding: var(--space-md);
    border-bottom: 1px solid var(--color-border);
  }

  body.woocommerce-cart .woocommerce-cart-form table.shop_table_responsive tr.cart_item td {
    padding: .45rem 0;
    border: 0;
    background: transparent;
    text-align: left !important;
  }

  body.woocommerce-cart .woocommerce-cart-form table.shop_table_responsive tr.cart_item td::before {
    display: inline;
    float: none;
    margin-right: .4rem;
    color: var(--color-muted);
    font-size: var(--text-xs);
    font-weight: 600;
  }

  body.woocommerce-cart .woocommerce-cart-form table.shop_table_responsive tr.cart_item .product-remove {
    position: absolute;
    z-index: 2;
    top: .75rem;
    right: .75rem;
    width: auto;
    padding: 0;
  }

  body.woocommerce-cart .woocommerce-cart-form table.shop_table_responsive tr.cart_item .product-thumbnail {
    grid-column: 1;
    grid-row: 1 / span 4;
    width: auto;
    padding-right: .8rem;
  }

  body.woocommerce-cart .woocommerce-cart-form table.shop_table_responsive tr.cart_item .product-thumbnail::before {
    content: none;
  }

  body.woocommerce-cart .woocommerce-cart-form table.shop_table_responsive tr.cart_item .product-thumbnail img {
    width: 4.3rem;
    height: 4.3rem;
  }

  body.woocommerce-cart .woocommerce-cart-form table.shop_table_responsive tr.cart_item .product-name,
  body.woocommerce-cart .woocommerce-cart-form table.shop_table_responsive tr.cart_item .product-price,
  body.woocommerce-cart .woocommerce-cart-form table.shop_table_responsive tr.cart_item .product-quantity,
  body.woocommerce-cart .woocommerce-cart-form table.shop_table_responsive tr.cart_item .product-subtotal {
    grid-column: 2;
    min-width: 0;
    padding-right: 2.8rem;
  }

  body.woocommerce-cart .woocommerce-cart-form table.shop_table_responsive tr.cart_item .product-name::before {
    content: none;
  }

  body.woocommerce-cart .woocommerce-cart-form td.actions,
  body.woocommerce-cart .woocommerce-cart-form td.actions .coupon {
    display: grid;
    width: 100%;
    gap: .65rem;
  }

  body.woocommerce-cart .woocommerce-cart-form td.actions {
    padding: var(--space-md);
  }

  body.woocommerce-cart .woocommerce-cart-form td.actions .coupon {
    grid-template-columns: minmax(0, 1fr) auto;
    float: none;
    margin-bottom: .65rem;
  }

  body.woocommerce-cart .woocommerce-cart-form td.actions .coupon input.input-text {
    grid-column: 1;
    grid-row: 1;
  }

  body.woocommerce-cart .woocommerce-cart-form td.actions .coupon button[name="apply_coupon"] {
    grid-column: 2;
    grid-row: 1;
  }

  body.woocommerce-cart .woocommerce-cart-form .coupon input.input-text,
  body.woocommerce-cart .woocommerce-cart-form button[name="update_cart"] {
    float: none;
    width: 100%;
  }

  body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
  body.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper,
  body.woocommerce-checkout .checkout_coupon {
    grid-template-columns: 1fr;
  }

  body.woocommerce-checkout .entity-type-control .woocommerce-input-wrapper {
    grid-template-columns: auto minmax(0, 1fr);
  }

  body.woocommerce-checkout .checkout_coupon .form-row + .form-row {
    margin-top: .65rem;
  }

  body.woocommerce-checkout form.checkout > .woocommerce-NoticeGroup-checkout,
  body.woocommerce-checkout form.checkout:has(> .woocommerce-NoticeGroup-checkout) #customer_details,
  body.woocommerce-checkout form.checkout:has(> .woocommerce-NoticeGroup-checkout) #order_review_heading,
  body.woocommerce-checkout form.checkout:has(> .woocommerce-NoticeGroup-checkout) #order_review {
    grid-row: auto;
  }

  body.woocommerce-order-received .woocommerce-order-overview {
    grid-template-columns: 1fr 1fr;
  }

  body.woocommerce-order-received .woocommerce-order-overview li {
    border-right: 0;
    border-bottom: 1px solid var(--color-border);
  }

  body.woocommerce-order-received .woocommerce-order-overview li:nth-child(odd) {
    border-right: 1px solid var(--color-border);
  }
}

@media (max-width: 35rem) {
  body.woocommerce-cart .woocommerce-cart-form td.actions .coupon {
    grid-template-columns: 1fr;
  }

  body.woocommerce-cart .woocommerce-cart-form td.actions .coupon input.input-text {
    width: 100%;
  }

  body.woocommerce-cart .woocommerce-cart-form td.actions .coupon button[name="apply_coupon"] {
    grid-column: 1;
    grid-row: 2;
    width: 100%;
  }

  body.woocommerce-checkout form.checkout #customer_details > .col-1,
  body.woocommerce-checkout form.checkout #customer_details > .col-2:not(:empty),
  body.woocommerce-cart .cart-collaterals .cart_totals,
  body.woocommerce-checkout .woocommerce-form-login,
  body.woocommerce-checkout .checkout_coupon,
  body.woocommerce-order-received :is(
    .woocommerce-order-details,
    .woocommerce-customer-details,
    .woocommerce-bacs-bank-details,
    .woocommerce-order-payment-slip,
    .woocommerce-order-ips-qr-code,
    .woocommerce-email
  ) {
    padding: var(--space-md);
  }

  body.woocommerce-order-received .woocommerce-order-overview {
    grid-template-columns: 1fr;
  }

  body.woocommerce-order-received .woocommerce-order-overview li,
  body.woocommerce-order-received .woocommerce-order-overview li:nth-child(odd) {
    border-right: 0;
  }

  .dg-transaction__commerce :is(.woocommerce-info, .woocommerce-message) .button {
    display: block;
    float: none;
    width: fit-content;
    margin-bottom: .55rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .dg-transaction__commerce *,
  .dg-transaction__commerce *::before,
  .dg-transaction__commerce *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }
}

.dg-transaction .dg-identity-notice {
  padding: var(--space-sm) var(--space-md);
  border-left: 2px solid var(--color-accent);
  background: var(--color-surface);
  font-size: var(--text-sm);
}
.dg-transaction [hidden].dg-identity-notice,
.dg-transaction [hidden].dg-jmbg-row { display: none !important; }
