/* === DBM WooCommerce Cart + Checkout overrides === */
/* Force overrides of WC + theme defaults with high specificity */

body.woocommerce-cart,
body.woocommerce-checkout {
  --dbm-ink: #0E0E0E;
  --dbm-clay: #4D2A14;
  --dbm-sky: #5C8B8F;
  --dbm-muted: #8A8A8A;
  --dbm-line: #ECECEC;
  --dbm-line2: #D8D8D8;
  --dbm-bg: #FAFAFA;
}

/* Wrapper width + spacing for the WC area */
body.woocommerce-cart .woocommerce,
body.woocommerce-checkout .woocommerce,
body.woocommerce-cart main .entry-content,
body.woocommerce-checkout main .entry-content {
  max-width: 1340px !important;
  margin-inline: auto !important;
  padding: 60px 32px 100px !important;
  font-family: inherit !important;
  color: var(--dbm-ink) !important;
}

/* Page H1 / title */
body.woocommerce-cart .entry-header h1,
body.woocommerce-checkout .entry-header h1,
body.woocommerce-cart .entry-title,
body.woocommerce-checkout .entry-title,
body.woocommerce-cart h1.page-title,
body.woocommerce-checkout h1.page-title {
  font-weight: 500 !important;
  font-size: clamp(28px, 3.2vw, 44px) !important;
  letter-spacing: -0.018em !important;
  color: var(--dbm-clay) !important;
  margin: 0 0 40px !important;
  line-height: 1.1 !important;
  text-align: start !important;
}

/* === Tables (shop_table / cart / order review) === */
body.woocommerce-cart .woocommerce table.shop_table,
body.woocommerce-checkout .woocommerce table.shop_table,
body.woocommerce-cart table.cart,
body.woocommerce-checkout-review-order-table {
  border: none !important;
  border-collapse: collapse !important;
  background: transparent !important;
  margin: 0 0 40px !important;
  width: 100% !important;
  border-radius: 0 !important;
}
body.woocommerce-cart .woocommerce table.shop_table thead,
body.woocommerce-cart .woocommerce table.shop_table thead tr,
body.woocommerce-cart .woocommerce table.shop_table thead th,
body.woocommerce-checkout .woocommerce table.shop_table thead th {
  background: transparent !important;
  border: none !important;
  border-bottom: 1px solid var(--dbm-line) !important;
  padding: 16px 12px !important;
  font-size: 11px !important;
  letter-spacing: 0.18em !important;
  font-weight: 500 !important;
  color: var(--dbm-muted) !important;
  text-transform: uppercase !important;
  text-align: start !important;
  font-family: inherit !important;
}
body.woocommerce-cart .woocommerce table.shop_table tbody tr,
body.woocommerce-checkout .woocommerce table.shop_table tbody tr {
  background: transparent !important;
}
body.woocommerce-cart .woocommerce table.shop_table tbody td,
body.woocommerce-cart .woocommerce table.shop_table tbody th,
body.woocommerce-checkout .woocommerce table.shop_table tbody td,
body.woocommerce-checkout .woocommerce table.shop_table tbody th {
  background: transparent !important;
  border: none !important;
  border-bottom: 1px solid var(--dbm-line) !important;
  padding: 24px 12px !important;
  vertical-align: middle !important;
  font-size: 15px !important;
  color: var(--dbm-ink) !important;
  font-family: inherit !important;
}
body.woocommerce-cart .woocommerce table.shop_table .product-thumbnail { width: 96px !important; }
body.woocommerce-cart .woocommerce table.shop_table .product-thumbnail img,
body.woocommerce-checkout .woocommerce table.shop_table .product-thumbnail img {
  width: 80px !important;
  height: 80px !important;
  object-fit: cover !important;
  border-radius: 0 !important;
  display: block;
}
body.woocommerce-cart .woocommerce table.shop_table .product-name a {
  color: var(--dbm-ink) !important;
  font-weight: 500 !important;
  font-size: 15px !important;
  text-decoration: none !important;
  transition: color .2s !important;
  font-family: inherit !important;
}
body.woocommerce-cart .woocommerce table.shop_table .product-name a:hover { color: var(--dbm-clay) !important; }
body.woocommerce-cart .woocommerce table.shop_table .product-name .variation,
body.woocommerce-checkout .woocommerce table.shop_table .product-name .variation {
  margin: 6px 0 0 !important;
  font-size: 12px !important;
  color: var(--dbm-muted) !important;
}
body.woocommerce-cart .woocommerce table.shop_table .product-price,
body.woocommerce-cart .woocommerce table.shop_table .product-subtotal {
  font-weight: 500 !important;
  color: var(--dbm-ink) !important;
  font-size: 16px !important;
  white-space: nowrap;
}
body.woocommerce-cart .woocommerce table.shop_table .product-remove {
  width: 50px !important;
  text-align: center !important;
}
body.woocommerce-cart .woocommerce table.shop_table .product-remove a.remove {
  width: 32px !important;
  height: 32px !important;
  background: transparent !important;
  color: var(--dbm-muted) !important;
  border: 1px solid var(--dbm-line) !important;
  border-radius: 50% !important;
  font-size: 16px !important;
  font-weight: 300 !important;
  display: inline-grid !important;
  place-items: center !important;
  transition: all .2s !important;
  text-decoration: none !important;
  line-height: 1 !important;
}
body.woocommerce-cart .woocommerce table.shop_table .product-remove a.remove:hover {
  background: var(--dbm-ink) !important;
  color: #fff !important;
  border-color: var(--dbm-ink) !important;
}

/* === Quantity inputs === */
body.woocommerce-cart .woocommerce .quantity,
body.woocommerce-checkout .woocommerce .quantity {
  display: inline-flex !important;
  align-items: stretch !important;
  border: 1px solid var(--dbm-ink) !important;
  height: 44px !important;
  width: 110px !important;
  border-radius: 0 !important;
  background: transparent !important;
}
body.woocommerce-cart .woocommerce .quantity input.qty,
body.woocommerce-checkout .woocommerce .quantity input.qty {
  border: none !important;
  outline: none !important;
  background: transparent !important;
  text-align: center !important;
  font-family: inherit !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  width: 100% !important;
  height: 100% !important;
  -moz-appearance: textfield !important;
  padding: 0 !important;
}
body.woocommerce-cart .woocommerce .quantity input.qty::-webkit-outer-spin-button,
body.woocommerce-cart .woocommerce .quantity input.qty::-webkit-inner-spin-button { -webkit-appearance: none !important; margin: 0 !important; }

/* === Coupon row === */
body.woocommerce-cart .woocommerce .actions {
  padding: 24px 0 !important;
  background: transparent !important;
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 12px !important;
  align-items: center !important;
  border: none !important;
}
body.woocommerce-cart .woocommerce .actions .coupon {
  display: flex !important;
  gap: 0 !important;
  flex: 1 1 auto !important;
  max-width: 400px !important;
}
body.woocommerce-cart .woocommerce .actions .coupon label { display: none !important; }
body.woocommerce-cart .woocommerce .actions .coupon input[type="text"] {
  flex: 1 !important;
  border: 1px solid var(--dbm-ink) !important;
  border-radius: 0 !important;
  background: transparent !important;
  padding: 14px 16px !important;
  font-family: inherit !important;
  font-size: 14px !important;
  outline: none !important;
  height: 50px !important;
  color: var(--dbm-ink) !important;
  box-shadow: none !important;
}

/* === Buttons (cart + checkout, all variants) === */
body.woocommerce-cart button.button,
body.woocommerce-cart input.button,
body.woocommerce-cart a.button,
body.woocommerce-cart button[type=submit],
body.woocommerce-checkout button.button,
body.woocommerce-checkout input.button,
body.woocommerce-checkout a.button,
body.woocommerce-checkout button[type=submit],
body.woocommerce-cart .woocommerce button.button.alt,
body.woocommerce-cart .woocommerce input.button.alt,
body.woocommerce-cart .woocommerce a.button.alt,
body.woocommerce-checkout .woocommerce button.button.alt,
body.woocommerce-checkout #place_order,
body.woocommerce-cart .checkout-button {
  background: var(--dbm-ink) !important;
  background-color: var(--dbm-ink) !important;
  background-image: none !important;
  color: #fff !important;
  border: 1px solid var(--dbm-ink) !important;
  border-radius: 0 !important;
  padding: 14px 28px !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  letter-spacing: 0.04em !important;
  font-family: inherit !important;
  height: auto !important;
  min-height: 50px !important;
  transition: background .25s, color .25s !important;
  cursor: pointer !important;
  text-decoration: none !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-shadow: none !important;
  box-shadow: none !important;
  text-transform: none !important;
  line-height: 1.3 !important;
}
body.woocommerce-cart button.button:hover,
body.woocommerce-cart input.button:hover,
body.woocommerce-cart a.button:hover,
body.woocommerce-checkout button.button:hover,
body.woocommerce-checkout input.button:hover,
body.woocommerce-checkout a.button:hover,
body.woocommerce-checkout #place_order:hover,
body.woocommerce-cart .checkout-button:hover {
  background: #fff !important;
  background-color: #fff !important;
  color: var(--dbm-ink) !important;
}

/* === Cart totals card === */
body.woocommerce-cart .woocommerce .cart_totals,
body.woocommerce-cart .cart-collaterals .cart_totals {
  background: var(--dbm-bg) !important;
  padding: 30px !important;
  border: 1px solid var(--dbm-line) !important;
  margin-top: 30px !important;
  margin-inline-start: auto !important;
  border-radius: 0 !important;
  max-width: 460px !important;
  width: 100% !important;
  float: none !important;
}
body.woocommerce-cart .cart-collaterals { display: block !important; }
body.woocommerce-cart .cart_totals h2,
body.woocommerce-checkout #order_review_heading {
  font-weight: 500 !important;
  font-size: 18px !important;
  letter-spacing: -0.005em !important;
  color: var(--dbm-clay) !important;
  margin: 0 0 20px !important;
  font-family: inherit !important;
}
body.woocommerce-cart .cart_totals table { border: none !important; margin: 0 !important; width: 100% !important; }
body.woocommerce-cart .cart_totals table th,
body.woocommerce-cart .cart_totals table td {
  border: none !important;
  border-bottom: 1px solid var(--dbm-line) !important;
  padding: 14px 0 !important;
  font-size: 14px !important;
  background: transparent !important;
  text-align: start !important;
  color: var(--dbm-ink) !important;
  vertical-align: middle !important;
}
body.woocommerce-cart .cart_totals table th { font-weight: 500 !important; color: var(--dbm-muted) !important; }
body.woocommerce-cart .cart_totals .order-total th,
body.woocommerce-cart .cart_totals .order-total td {
  border-bottom: none !important;
  padding-top: 18px !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  color: var(--dbm-ink) !important;
}
body.woocommerce-cart .cart_totals .order-total .amount,
body.woocommerce-checkout .order-total .amount {
  font-size: 22px !important;
  font-weight: 500 !important;
  color: var(--dbm-clay) !important;
  letter-spacing: -0.01em !important;
}
body.woocommerce-cart .wc-proceed-to-checkout {
  padding: 24px 0 0 !important;
  margin: 0 !important;
}
body.woocommerce-cart .wc-proceed-to-checkout .checkout-button {
  width: 100% !important;
  display: block !important;
  text-align: center !important;
  padding: 18px !important;
  min-height: 56px !important;
  font-size: 14px !important;
}

/* === Checkout layout v3 - wrapper-based grid === */
body.woocommerce-checkout form.checkout,
body.woocommerce-checkout form.woocommerce-checkout {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 420px !important;
  column-gap: 60px !important;
  row-gap: 24px !important;
  align-items: start !important;
}
/* Default: every direct child spans full width (notices, login form, coupon form) */
body.woocommerce-checkout form.checkout > *,
body.woocommerce-checkout form.woocommerce-checkout > * {
  grid-column: 1 / -1 !important;
}
/* Customer details -> left column, single row */
body.woocommerce-checkout form.checkout > #customer_details,
body.woocommerce-checkout form.woocommerce-checkout > #customer_details {
  grid-column: 1 / 2 !important;
}
/* The order wrapper (created by JS) -> right column, sticky from the top */
body.woocommerce-checkout form.checkout > .dbm-order-side,
body.woocommerce-checkout form.woocommerce-checkout > .dbm-order-side {
  grid-column: 2 / 3 !important;
  position: sticky !important;
  top: 120px !important;
  align-self: start !important;
}
/* Inside the wrapper - vertical stack, no extra gap */
body.woocommerce-checkout .dbm-order-side {
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
}
body.woocommerce-checkout .dbm-order-side #order_review_heading {
  margin: 0 0 20px !important;
}

@media (max-width: 980px) {
  body.woocommerce-checkout form.checkout,
  body.woocommerce-checkout form.woocommerce-checkout {
    grid-template-columns: 1fr !important;
    column-gap: 0 !important;
  }
  body.woocommerce-checkout form.checkout > #customer_details,
  body.woocommerce-checkout form.checkout > .dbm-order-side,
  body.woocommerce-checkout form.woocommerce-checkout > #customer_details,
  body.woocommerce-checkout form.woocommerce-checkout > .dbm-order-side {
    grid-column: 1 / -1 !important;
    position: static !important;
  }
}
/* Internal #customer_details layout - stack billing + shipping vertically (no col-1 / col-2 float) */
body.woocommerce-checkout #customer_details {
  display: flex !important;
  flex-direction: column !important;
  gap: 30px !important;
}
body.woocommerce-checkout #customer_details .col2-set,
body.woocommerce-checkout #customer_details .col-1,
body.woocommerce-checkout #customer_details .col-2 {
  width: 100% !important;
  max-width: 100% !important;
  float: none !important;
  padding: 0 !important;
  margin: 0 !important;
  display: block !important;
}
body.woocommerce-checkout #customer_details .col2-set {
  display: flex !important;
  flex-direction: column !important;
  gap: 30px !important;
}
body.woocommerce-checkout #customer_details::after,
body.woocommerce-checkout .col2-set::after {
  content: "";
  display: table;
  clear: both;
}

@media (max-width: 980px) {
  body.woocommerce-checkout form.checkout,
  body.woocommerce-checkout form.woocommerce-checkout {
    grid-template-columns: 1fr !important;
    column-gap: 0 !important;
  }
  body.woocommerce-checkout form.checkout > #customer_details,
  body.woocommerce-checkout form.checkout > #order_review_heading,
  body.woocommerce-checkout form.checkout > #order_review,
  body.woocommerce-checkout form.woocommerce-checkout > #customer_details,
  body.woocommerce-checkout form.woocommerce-checkout > #order_review_heading,
  body.woocommerce-checkout form.woocommerce-checkout > #order_review {
    grid-column: 1 / -1 !important;
    grid-row: auto !important;
    position: static !important;
  }
}
/* Checkout section headings */
body.woocommerce-checkout .woocommerce-billing-fields h3,
body.woocommerce-checkout .woocommerce-shipping-fields h3,
body.woocommerce-checkout .woocommerce-additional-fields h3,
body.woocommerce-checkout .woocommerce-account-fields h3 {
  font-weight: 500 !important;
  font-size: 18px !important;
  letter-spacing: -0.005em !important;
  color: var(--dbm-clay) !important;
  margin: 0 0 20px !important;
  padding-bottom: 14px !important;
  border-bottom: 1px solid var(--dbm-line) !important;
  font-family: inherit !important;
}

/* Form rows */
body.woocommerce-checkout form .form-row,
body.woocommerce form .form-row {
  margin: 0 0 18px !important;
  padding: 0 !important;
}
body.woocommerce-checkout form .form-row label,
body.woocommerce form .form-row label {
  display: block !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  color: var(--dbm-ink) !important;
  letter-spacing: 0.02em !important;
  margin: 0 0 6px !important;
  font-family: inherit !important;
}
body.woocommerce-checkout form .form-row .required,
body.woocommerce form .form-row .required { color: var(--dbm-clay) !important; }

/* All inputs */
body.woocommerce-checkout form .form-row input.input-text,
body.woocommerce-checkout form .form-row textarea,
body.woocommerce-checkout form .form-row select,
body.woocommerce-cart form .form-row input.input-text,
body.woocommerce-cart form .form-row textarea {
  background: transparent !important;
  background-color: transparent !important;
  border: 1px solid var(--dbm-line2) !important;
  border-radius: 0 !important;
  padding: 13px 16px !important;
  font-family: inherit !important;
  font-size: 14px !important;
  color: var(--dbm-ink) !important;
  outline: none !important;
  width: 100% !important;
  height: 50px !important;
  box-shadow: none !important;
  transition: border-color .2s ease !important;
}
body.woocommerce-checkout form .form-row textarea {
  height: auto !important;
  min-height: 120px !important;
  resize: vertical !important;
}
body.woocommerce-checkout form .form-row input.input-text:focus,
body.woocommerce-checkout form .form-row textarea:focus,
body.woocommerce-checkout form .form-row select:focus,
body.woocommerce-cart form .form-row input.input-text:focus { border-color: var(--dbm-ink) !important; }

/* Select2 dropdown styling */
body.woocommerce-checkout .select2-container--default .select2-selection--single,
body.woocommerce-cart .select2-container--default .select2-selection--single {
  background: transparent !important;
  border: 1px solid var(--dbm-line2) !important;
  border-radius: 0 !important;
  height: 50px !important;
  outline: none !important;
  font-family: inherit !important;
}
body.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered {
  line-height: 50px !important;
  padding: 0 16px !important;
  color: var(--dbm-ink) !important;
  font-size: 14px !important;
}
body.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow {
  height: 48px !important;
  inset-inline-end: 12px !important;
}
.select2-dropdown {
  border: 1px solid var(--dbm-ink) !important;
  border-radius: 0 !important;
  font-family: inherit !important;
}
.select2-results__option--highlighted[aria-selected] {
  background: var(--dbm-ink) !important;
  color: #fff !important;
}

/* Payment methods box */
body.woocommerce-checkout #payment {
  background: var(--dbm-bg) !important;
  padding: 30px !important;
  border: 1px solid var(--dbm-line) !important;
  border-radius: 0 !important;
  margin-top: 24px !important;
}
body.woocommerce-checkout #payment ul.payment_methods {
  border: none !important;
  background: transparent !important;
  margin: 0 !important;
  padding: 0 !important;
}
body.woocommerce-checkout #payment ul.payment_methods li {
  background: transparent !important;
  border: none !important;
  padding: 12px 0 !important;
  border-bottom: 1px solid var(--dbm-line) !important;
  list-style: none !important;
}
body.woocommerce-checkout #payment ul.payment_methods li:last-child { border-bottom: none !important; }
body.woocommerce-checkout #payment ul.payment_methods li label {
  font-weight: 500 !important;
  font-size: 14px !important;
  color: var(--dbm-ink) !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 10px !important;
  margin: 0 !important;
  padding: 0 !important;
  cursor: pointer !important;
}
body.woocommerce-checkout #payment div.payment_box {
  background: #fff !important;
  border: 1px solid var(--dbm-line) !important;
  border-radius: 0 !important;
  padding: 16px !important;
  font-size: 13px !important;
  color: var(--dbm-muted) !important;
  margin-top: 10px !important;
}
body.woocommerce-checkout #payment div.payment_box::before { display: none !important; content: none !important; }
body.woocommerce-checkout .wc_payment_method img { max-height: 32px !important; margin-inline-start: 8px !important; }

/* Order review table */
body.woocommerce-checkout-review-order-table { background: transparent !important; }
body.woocommerce-checkout-review-order-table tbody td,
body.woocommerce-checkout-review-order-table tbody th { padding: 14px 0 !important; }
body.woocommerce-checkout-review-order-table tfoot th,
body.woocommerce-checkout-review-order-table tfoot td {
  border-top: 1px solid var(--dbm-line) !important;
  padding: 14px 0 !important;
  font-size: 14px !important;
}
body.woocommerce-checkout-review-order-table tfoot .order-total .amount {
  font-size: 22px !important;
  color: var(--dbm-clay) !important;
  font-weight: 500 !important;
}

/* Terms checkbox */
body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper {
  padding: 16px !important;
  background: #fff !important;
  border: 1px solid var(--dbm-line) !important;
  margin-top: 20px !important;
  max-height: 200px !important;
  overflow-y: auto !important;
  font-size: 13px !important;
  color: var(--dbm-muted) !important;
  border-radius: 0 !important;
}

/* Place order button */
body.woocommerce-checkout #place_order {
  width: 100% !important;
  padding: 18px !important;
  font-size: 15px !important;
  min-height: 60px !important;
  margin-top: 24px !important;
}

/* Notices */
body.woocommerce-cart .woocommerce-message,
body.woocommerce-cart .woocommerce-info,
body.woocommerce-cart .woocommerce-error,
body.woocommerce-cart .woocommerce-notice,
body.woocommerce-checkout .woocommerce-message,
body.woocommerce-checkout .woocommerce-info,
body.woocommerce-checkout .woocommerce-error,
body.woocommerce-checkout .woocommerce-notice {
  background: var(--dbm-bg) !important;
  border: 1px solid var(--dbm-line) !important;
  border-inline-start: 3px solid var(--dbm-clay) !important;
  padding: 16px 20px !important;
  margin: 0 0 24px !important;
  border-radius: 0 !important;
  font-size: 14px !important;
  color: var(--dbm-ink) !important;
  list-style: none !important;
  font-family: inherit !important;
}
body.woocommerce-cart .woocommerce-message::before,
body.woocommerce-cart .woocommerce-info::before,
body.woocommerce-cart .woocommerce-error::before,
body.woocommerce-checkout .woocommerce-message::before,
body.woocommerce-checkout .woocommerce-info::before,
body.woocommerce-checkout .woocommerce-error::before { display: none !important; content: none !important; }
body.woocommerce-cart .woocommerce-message .button,
body.woocommerce-cart .woocommerce-info .button {
  float: none !important;
  margin-inline-start: 14px !important;
  padding: 8px 16px !important;
  font-size: 13px !important;
  min-height: 0 !important;
}

/* Hide cross-sells (cleaner look) */
body.woocommerce-cart .cross-sells { display: none !important; }

@media (max-width: 760px) {
  body.woocommerce-cart .woocommerce,
  body.woocommerce-checkout .woocommerce { padding: 40px 16px 60px !important; }
  body.woocommerce-cart .woocommerce table.shop_table { display: block !important; overflow-x: auto !important; }
  body.woocommerce-cart .woocommerce .cart_totals { max-width: 100% !important; }
}
/* === Form row half-widths === */
/* Form rows: support first/last side-by-side */
body.woocommerce-checkout .form-row {
  display: block !important;
  margin: 0 0 18px !important;
}
body.woocommerce-checkout p.form-row-first,
body.woocommerce-checkout p.form-row-last {
  width: calc(50% - 8px) !important;
  display: inline-block !important;
  vertical-align: top;
}
body.woocommerce-checkout p.form-row-first { margin-inline-end: 16px !important; }
body.woocommerce-checkout p.form-row-wide,
body.woocommerce-checkout p.form-row-full {
  width: 100% !important;
  display: block !important;
}
@media (max-width: 600px) {
  body.woocommerce-checkout p.form-row-first,
  body.woocommerce-checkout p.form-row-last {
    width: 100% !important;
    display: block !important;
    margin-inline-end: 0 !important;
  }
}