/* ===== WooCommerce — Checkout ===== */
.woocommerce-checkout .woocommerce-info {
  margin-bottom: var(--space-6);
}
.woocommerce-checkout form.checkout {
  display: grid;
  gap: var(--space-8);
}
@media (min-width: 1024px) {
  .woocommerce-checkout form.checkout {
    grid-template-columns: minmax(0, 1fr) 400px;
    grid-template-rows: auto auto 1fr; /* row 1: notices (errors) · rows 2–3: fields | heading + review */
    column-gap: var(--space-12);
    row-gap: 0;
    align-items: start;
  }
  /* WooCommerce prepends validation errors into the form; span the top instead of falling into a grid cell. */
  .woocommerce-checkout form.checkout .woocommerce-NoticeGroup {
    grid-column: 1 / -1;
    grid-row: 1;
  }
  /* Billing/shipping fields span both rows; heading + review panel stack on the right. */
  .woocommerce-checkout #customer_details {
    grid-column: 1;
    grid-row: 2 / span 2;
  }
  .woocommerce-checkout #order_review_heading {
    grid-column: 2;
    grid-row: 2;
  }
  .woocommerce-checkout #order_review {
    grid-column: 2;
    grid-row: 3;
    position: sticky;
    top: 96px;
  }
}
.woocommerce-checkout .woocommerce-billing-fields h3,
.woocommerce-checkout .woocommerce-additional-fields h3,
.woocommerce-checkout #order_review_heading {
  font-size: var(--text-xl);
  font-weight: var(--fw-heading);
  color: var(--gray-900);
  margin: 0 0 var(--space-5);
}
.woocommerce-checkout .woocommerce-additional-fields {
  margin-top: var(--space-4);
}
/* First/last name (and similar pairs) sit side by side on wider screens. */
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper {
  display: grid;
  gap: 0 var(--space-4);
}
@media (min-width: 640px) {
  .woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
  .woocommerce-checkout .woocommerce-shipping-fields__field-wrapper {
    grid-template-columns: 1fr 1fr;
  }
  .woocommerce-checkout .form-row {
    grid-column: 1 / -1;
  }
  .woocommerce-checkout .form-row-first,
  .woocommerce-checkout .form-row-last {
    grid-column: span 1;
  }
}
.woocommerce-checkout .col2-set,
.woocommerce-checkout #customer_details {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.woocommerce-checkout h3#ship-to-different-address {
  font-size: var(--text-base);
  font-weight: var(--fw-heading);
  margin: var(--space-6) 0 var(--space-3);
}
.woocommerce-checkout #order_review_heading {
  margin-top: 0;
}
.woocommerce-checkout #order_review table.shop_table {
  background: transparent;
}
.woocommerce-checkout .woocommerce-checkout-payment {
  background: var(--color-surface);
  border: var(--border-strong);
  border-radius: var(--radius-lg);
  margin-top: var(--space-4);
  padding: var(--space-1);
}
.woocommerce-checkout ul.wc_payment_methods {
  list-style: none;
  padding: 0;
  margin: 0;
}
.woocommerce-checkout ul.wc_payment_methods li.wc_payment_method {
  padding: var(--space-3-5) var(--space-4);
  border-bottom: var(--border-w) dashed var(--gray-300);
  font-family: var(--font-display);
  font-weight: var(--fw-ui);
  font-size: var(--text-md);
}
.woocommerce-checkout ul.wc_payment_methods li.wc_payment_method:last-child {
  border-bottom: none;
}
.woocommerce-checkout ul.wc_payment_methods .payment_box {
  background: var(--tint-2);
  border-radius: var(--radius-md);
  padding: var(--space-3-5);
  margin-top: var(--space-2-5);
  font-family: var(--font-sans);
  font-weight: var(--fw-regular);
  font-size: var(--text-sm);
  color: var(--gray-600);
}
.woocommerce-checkout #place_order {
  width: 100%;
  margin-top: var(--space-4);
  padding: var(--space-4) var(--space-6);
  font-size: var(--text-lg);
}
.woocommerce-checkout .woocommerce-privacy-policy-text p {
  margin-bottom: var(--space-1);
  font-size: var(--text-sm);
  line-height: var(--lh-normal);
  color: var(--gray-500);
}
.woocommerce-checkout #order_review .order-total .amount {
  font-family: var(--font-display);
  font-size: var(--text-xl);
  color: var(--primary-600);
}

/* Fields WooCommerce flags after a failed submit. */
.woocommerce form .form-row.woocommerce-invalid input.input-text,
.woocommerce form .form-row.woocommerce-invalid select,
.woocommerce form .form-row.woocommerce-invalid textarea,
.woocommerce form .form-row.woocommerce-invalid .select2-selection {
  border-color: var(--danger-600);
  box-shadow: var(--focus-ring-danger);
}
.woocommerce form .form-row.woocommerce-invalid label {
  color: var(--danger-600);
}

/* ===== Order received (thank-you) page ===== */
.woocommerce-order .woocommerce-thankyou-order-received {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  background: var(--mint-50);
  color: var(--mint-600);
  border: 1px solid var(--mint-100);
  border-radius: var(--radius-md);
  padding: var(--space-4) var(--space-5);
  margin-bottom: var(--space-6);
  font-size: var(--text-base);
  font-weight: var(--fw-semibold);
}
.woocommerce-order .woocommerce-thankyou-order-received::before {
  content: '';
  flex: none;
  width: 22px;
  height: 22px;
  background: currentColor;
  -webkit-mask: var(--icon-check) center / contain no-repeat;
  mask: var(--icon-check) center / contain no-repeat;
}
.woocommerce-order ul.woocommerce-order-overview {
  list-style: none;
  margin: 0 0 var(--space-6);
  padding: 0;
  display: grid;
  gap: var(--space-3);
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
@media (min-width: 900px) {
  .woocommerce-order ul.woocommerce-order-overview {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
.woocommerce-order ul.woocommerce-order-overview li {
  background: var(--gray-50);
  border-radius: var(--radius-md);
  padding: var(--space-3-5) var(--space-4);
  font-size: var(--text-xs);
  font-weight: var(--fw-semibold);
  text-transform: uppercase;
  letter-spacing: var(--tracking-wide);
  color: var(--gray-500);
  overflow-wrap: anywhere;
}
.woocommerce-order ul.woocommerce-order-overview li strong {
  display: block;
  margin-top: var(--space-1);
  font-size: var(--text-base);
  font-weight: var(--fw-figure);
  text-transform: none;
  letter-spacing: 0;
  color: var(--gray-900);
}
.woocommerce-order .woocommerce-order-details,
.woocommerce-order .woocommerce-customer-details {
  margin-top: var(--space-8);
}
.woocommerce-order .woocommerce-order-details__title,
.woocommerce-order .woocommerce-column__title {
  font-size: var(--text-xl);
  font-weight: var(--fw-heading);
  color: var(--gray-900);
  margin: 0 0 var(--space-4);
}
.woocommerce-order .woocommerce-customer-details address {
  font-style: normal;
  line-height: var(--lh-relaxed);
  color: var(--gray-700);
  background: var(--gray-50);
  border-radius: var(--radius-md);
  padding: var(--space-4) var(--space-5);
}
/* Variation / custom item data under a product name ("Size: Medium"). */
.woocommerce ul.wc-item-meta,
.woocommerce dl.variation {
  list-style: none;
  margin: var(--space-1) 0 0;
  padding: 0;
  font-size: var(--text-sm);
  color: var(--gray-500);
}
.woocommerce ul.wc-item-meta li,
.woocommerce dl.variation dt,
.woocommerce dl.variation dd {
  display: inline;
  margin: 0;
}
.woocommerce ul.wc-item-meta li p,
.woocommerce dl.variation dd p {
  display: inline;
  margin: 0;
}
.woocommerce ul.wc-item-meta li .wc-item-meta-label,
.woocommerce dl.variation dt {
  font-weight: var(--fw-semibold);
}
